1

我需要帮助如何组织 drupal cms 的节点。

我有三种用户(三个额外的用户组)。

仅当用户登录时才能访问节点。

第一个组的用户可以访问由所有用户(所有用户组)创建的所有节点。

第二组的用户只能访问他们自己创建的节点。

第三组的用户可以访问他们和第一组的用户创建的内容。

重要的是,当用户输入他们的内容时,他们不必定义谁可以访问哪些内容。它必须由系统完成。

是否可以使用视图模块进行组织?此外,重要的是用户必须使用相同的链接来访问节点。

我需要一些额外的编程吗?

先感谢您!!!

4

1 回答 1

1

我很抱歉,但这个问题的答案解释起来相当复杂。这个概念实际上很简单。

您将需要使用基于节点访问的模块。节点访问模块有什么作用?请参见:

http://drupal.org/node/270000以获得良好的概述

首先,创建 3 个用户角色。让我们称它们为:Role_A、Role_B、Role_C。然后创建一个名为 Group 的词汇表。在 Group 词汇表中添加三个术语:Group_A、Group_B、Group_C。

确保组词汇适用于您要控制的所有内容类型,例如页面、故事等。

概念如下: Role_A 的用户在创建节点时,应将 Group_A 术语添加到节点。当 Role_B 的用户创建节点时,他应该将 Group_B 术语添加到节点。Role_C 的用户在创建节点时,应添加 Group_C 术语。我知道您希望用户不必这样做……我们可以通过一些方法来避免这种情况或使其变得简单……继续阅读。

使用分类访问控制lite模块http://drupal.org/project/tac_lite您将使其:

角色 A 将有权查看具有分类术语 Group_A 或 Group_B 或 Group_C 的所有节点。角色 B 将有权查看具有分类术语 Group_B 的所有节点。角色 C 将有权查看具有分类术语 Group_A 或 Group_C 的所有节点

现在您需要防止 Role_A 的用户附加 Group 词汇表中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。

现在您应该将 Group 词汇设置为必需(单击编辑词汇设置中的必需复选框)。这是为了让用户被迫选择他们的组。请注意,由于长期权限,他们的下拉列表中只有一项需要从中进行选择,因此这是微不足道的。

视图模块将开箱即用。Role_A 用户将只能看到他们应该看到的节点等等。所以你在那里没问题。

注意 1:如果您希望人们不必担心必须选择组,您可以随时使用规则模块来确保节点在保存时标记有特定的分类术语。请参阅http://drupal.org/project/rules。因此,如果用户角色是角色 A,那么您将在保存时添加 Group_A 术语,依此类推。如果您使用规则,则无需将组词汇设为“必需”。

注意 2:请注意,您可以简单地使用分类访问控制http://drupal.org/project/taxonomy_access ,而不是使用分类访问控制lite + 术语权限模块组合,这是一个强大但更棘手的模块。

Note 3: Please note that at the time of writing this, the term permissions module interferes with the Hierarchical Select (HS) Module and perhaps the taxonomy super select (TSS) modules. So if you are using the HS/TSS modules you will need to user taxonomy access control (and not tac_lite)

于 2010-09-23T11:20:44.797 回答