我需要帮助如何组织drupal cms的节点。
我有三种用户(另外三个用户组)。
只有用户登录才能访问节点。
来自第一组的用户可以访问由所有用户(所有用户组)创建的所有节点。
来自第二组的用户只能访问他们自己创建的节点。
来自第三组的用户可以访问他们和第一组用户创建的内容。
重要的是,当用户输入他们的内容时,他们不必定义谁可以访问哪些内容。它必须由系统完成。
是否可以使用视图模块进行组织?此外,用户必须使用相同的链接来访问节点。
我需要一些额外的编程吗?
提前谢谢!!!
答案 0 :(得分:1)
我很抱歉,但解释的答案相当复杂。这个概念实际上很简单。
您需要使用基于节点访问的模块。节点访问模块有什么作用?请参阅:
http://drupal.org/node/270000以获得良好的概述
首先,创建3个用户角色。让我们称它们为:Role_A,Role_B,Role_C。然后创建一个名为Group的词汇表。在组词汇表中添加三个术语:Group_A,Group_B,Group_C。
确保群组词汇表适用于您要控制的所有内容类型,例如页面,故事等。
概念如下:当Role_A的用户创建节点时,他应该将Group_A术语添加到节点。当Role_B的用户创建节点时,他应该将Group_B术语添加到节点。当Role_C的用户创建节点时,他应该添加Group_C术语。我知道你希望用户不必这样做......有些方法我们可以避免这种情况或简化它...继续阅读。
使用分类法访问控制精简版模块http://drupal.org/project/tac_lite,您可以这样做:
角色A将具有查看对具有分类术语Group_A或Group_B或Group_C的所有节点的访问权限。角色B将具有查看对具有分类术语Group_B的所有节点的访问权限。角色C将具有查看对具有分类术语Group_A或Group_C
的所有节点的访问权限现在,您需要阻止Role_A的用户附加除 Group_A之外的组词汇中的任何术语。即,Role_A用户应该只能将术语Group_A添加到其节点,Role_B用户应该只能将术语Group_B添加到其节点,而Role_C用户应该只能将术语Group_C添加到其节点。
您可以使用术语权限模块http://drupal.org/project/term_permissions
来执行此操作转到组词汇表中的每个术语并对其进行编辑,现在可以使用权限部分。因此,只允许Role_A 拥有术语Group_A,Group_B的Role_B和Group_C的Role_C的权限。
现在您应该需要组词汇表(单击编辑词汇表设置中的必需复选框)。这样用户就可以选择他们的小组。请注意,由于期限权限,他们在下拉列表中只有一个项目需要他们选择,所以这很简单。
视图模块将开箱即用。 Role_A用户只能看到他们应该看到的节点,依此类推。所以你没事。
注意1:如果您希望人们不必担心必须选择组,您始终可以使用规则模块确保节点在保存时标记有特定的分类术语。见http://drupal.org/project/rules。因此,如果用户角色是角色A,您将添加Group_A术语,等等在保存时添加。如果您使用的是规则,则无需将“组”词汇表设为“必需”。
注意2:请注意,您可以简单地使用分类法访问控制http://drupal.org/project/taxonomy_access,而不是使用分类法访问控制精简 +期限权限模块组合,这是一个功能强大但更棘手的模块。
注3:请注意,在撰写本文时,术语权限模块会干扰分层选择(HS)模块以及分类超选(TSS)模块。因此,如果您使用HS / TSS模块,则需要使用分类访问控制(而不是tac_lite)