【发布时间】:2010-06-14 20:49:28
【问题描述】:
我知道我可以设置一个角色以允许用户仅编辑他们自己的页面,然后将相应的页面标记为由相应的用户创作。但后来我遇到了每页有多个用户的问题。
有没有什么方法可以明确地只允许用户编辑某些(可能是多个)页面,同时在可能允许多个用户编辑同一页面的情况下考虑重叠?
谢谢
【问题讨论】:
标签: drupal
我知道我可以设置一个角色以允许用户仅编辑他们自己的页面,然后将相应的页面标记为由相应的用户创作。但后来我遇到了每页有多个用户的问题。
有没有什么方法可以明确地只允许用户编辑某些(可能是多个)页面,同时在可能允许多个用户编辑同一页面的情况下考虑重叠?
谢谢
【问题讨论】:
标签: drupal
以编程方式执行此操作相当复杂,但一个相当简单的解决方案是创建一个词汇表以应用于页面,然后使用分类访问控制模块:http://drupal.org/project/taxonomy_access 根据术语设置权限。
【讨论】:
如果你只需要一个模块来设置用户对特定内容类型节点的访问权限,那么使用http://drupal.org/project/content_access;如果内容类型是书,也可以试试http://drupal.org/project/book_access。
请记住,应避免为访问控制安装不同的模块,因为它们往往会相互冲突。
如果您有耐心,那么您可以创建自己的自定义模块,并按照 Jeremy 的建议实现 hook_node_access_records() 和 hook_node_grants()。
【讨论】:
【讨论】:
几个月前我回答了一个类似的问题,概述了实现几种不同的访问场景:
How do I give a specific user editing rights to a specific node?
【讨论】:
这也可以使用hook_nod_access_records() 和hook_node_grants() 以编程方式实现。
使用钩子 node_access_record 创建一个包含您希望允许的用户的 UID 的 relm。并且在 hook grants 中创建一个与用户 uid 在同一个 relm 中的授权。它不是那么可怕而且非常灵活。
【讨论】: