8

如何授予特定用户对特定节点的编辑权限?

我有一个名为“学生”的用户角色。多个用户具有该角色,只有少数人可以编辑节点。我怎么能意识到这一点?

4

5 回答 5

14

我将尝试涵盖一些用例,以及我将如何解决它们:

  1. 如果某个用户类别的所有成员都可以编辑某种类型的任何节点
    • 为该用户子集创建一个新角色(“超级学生”,正如 Emyr 建议的那样)并通过 Drupal 的核心权限系统授予他们“编辑类型内容”权限(不需要节点访问模块)
  2. 如果某个用户类别的所有成员都可以编辑特定节点
    • 为该用户子集创建一个新角色,并授予他们对特定节点的编辑权限(需要节点访问模块,例如Node AccessContent Access)。这还需要有人有权(和时间)在创建新节点时授予对角色的访问权限。
  3. 部分用户可以编辑部分节点;没有可以编辑所有节点的“精英”用户组,并且并非所有成员都可以编辑相同的节点
    • 这将需要一个节点访问模块,例如节点访问或带有 ACL 的内容访问。还需要有权限授予其他用户编辑节点的权限的管理用户。
  4. 允许用户授予其他人编辑他们创建的节点的权限。
    • 我最近使用用户参考 CCK 字段和Node Access User Reference实现了这一点。您可以通过核心权限系统授予用户编辑自己节点的权限,然后他们可以将其他用户添加到用户参考字段。在我的情况下,创建者没有被授予该权限,我将字段的默认值设置为创建者的用户 ID,这允许用户删除自己无法编辑节点。

这些都假设您的内容没有分类。如果您的内容和用户组织得很好,您可能能够利用基于分类或有机组的节点访问模块。

于 2010-02-18T20:20:00.780 回答
3

对于像这样的异常权限的东西,我总是发现一个小的自定义模块是要走的路。通用节点访问模块必须足够通用,才能对许多不同的情况有用,这通常会使它们有点混乱和混乱。

对于这个特定的,您可以创建一个实现 hook_nodeapi 的模块并在 $op==prepare 上,根据您的用户参考检查用户的 ID,如果它们不匹配,则执行 drupal_goto 拒绝访问页面。

于 2010-02-18T14:01:31.763 回答
2

您可以使用Flexi Access做到这一点。授予特定用户对节点的“更新”权限将允许他编辑节点。

有关更多选项,请参阅页面:节点访问模块概述@ Drupal.org。

于 2012-11-20T05:09:24.367 回答
1

您是否尝试过节点访问内容访问

于 2010-02-18T20:00:51.457 回答
0

如果只有一个子集应该能够编辑节点,您需要一个额外的“超级学生”角色。

节点访问模块可以帮助您在节点上设置适当的权限。以下是其项目页面的摘录:

... 为菜单、菜单项、节点和管理和帮助系统的安全集成提供角色和用户特定的安全权限。我们希望将这套模块提供给社区,以分享该套件的实用性,并让社区参与进来,以提供额外的支持、测试和审核。特别注意确保权限管理的可用性在系统的所有部分(节点、菜单、菜单项)中保持一致。此外,每个安全模块都使用级联安全方案来允许全局安全性以及覆盖或定义个别项目的安全模型异常的选项。

于 2010-02-18T13:53:30.173 回答