2013-02-17 87 views
0

我正在创建一个网站,用户可以在其中与其他用户分享他们的内容,以便只有选定的用户才能看到您的内容。用户之间Drupal内容共享

事件内容类型具有用户参考字段,用户可以在该字段中勾选要显示内容的所需用户。这是一个好的解决方案吗?问题是当试图创建一个视图时,显示这些事件。

有人可以帮忙吗?

回答

0

解决了这个问题,而不是在共享字段中使用“用户参考”数据类型,我不得不使用“实体参考”。然后将“实体引用”关系添加到所需的视图并筛选user = current用户。奇迹般有效。据我了解,实体引用具有搜索字段,以便我可以在该字段中搜索已登录的用户:)

1

Drupal的节点系统提供了一个API来实现精细的grainerd访问控制。通过执行hook_node_grants()hook_node_access_record()来使用此API。在此之前,请查看Overview of Node Access modules以查看是否有任何符合您的需求。

+0

我有一个问题 - 它自我包含很多内容的视图,迄今为止据我了解,权限会限制整个视图,或不是?我在想一个过滤器:如果登录的用户名称在事件共享字段中,那么它显示出来。实施这个有多难? – MustSeeMelons 2013-02-17 15:26:10

+0

如果您将用户标识用作授权标识,则实现起来非常简单。另外,请考虑在http://drupal.stackexchange.com/上提问与Drupal相关的问题。 – Oswald 2013-02-17 17:09:44

+0

请问你能更具体吗?我是网络开发的新手,这就是我使用drupal的原因。 – MustSeeMelons 2013-02-17 17:14:00

2

是的,在Drupal中实现此标准(好)的方法是使用User Relationships模块。安装用户关系,以便用户可以与其他用户建立新的关系(例如,“朋友”,“可以看到我的一些东西”,“可以看到我所有的东西”等)

您需要创建一个自定义模块,通过在显示或列出内容之前检查所需关系是否存在来扩展访问控制权限。这可以通过直接的程序逻辑来完成,但是要注意如何构建迭代循环,以便您的自定义代码随着您的网站在用户中的增长而扩展。

或者,您可以使用Flag Friend模块,这是UR的一个较轻的替代方案,它允许您以与UR非常相似的方式定义用户之间的标记,但没有某些其他复杂因素。

最后,根据您的实际用户情况,您可能需要查看OG(Organic Groups),它允许您创建可以在其组中共享内容的用户组。

+0

我已经使用UR模块,以便用户可以与朋友分享只要。 – MustSeeMelons 2013-02-17 18:08:13

+0

根据您的要求,您可能会发现在代码中执行此操作可以更轻松地生成所需的视图(而不是使用UR域进行网站构建)。另外,不了解您的需求,您的模型似乎应该定义一个用户用户关系,而不是内容类型的属性。 – Forest 2013-02-17 19:16:34

+0

用户可以共享一种类型的内容(Event),这是一个社交日历网站。为每件内容创建用户 - 用户关系似乎不对吗? – MustSeeMelons 2013-02-18 09:37:16