总之,我正在寻找基于内容的访问控制解决方案,而不是基于用户角色的解决方案。
方案: 第1页包含来自各种访问控制级别(即级别a,b和c)的内容。
目前在Drupal中,您可以根据用户角色显示/隐藏内容。但是,如果用户不是所需的最高内容级别,我想阻止访问整个页面。
示例: 访问级别为a和/或b的用户将被阻止查看第1页,但具有至少级别c的用户将能够看到该页面的内容。
要抓住的是,每页访问级别必须是动态的,以防止在添加,更新或删除内容时出现错误的页面标记。
这样的模块是否已经存在,如果存在,它是什么?
如果不存在,是否有直接的实现方法?
服务器配置是Drupal 7,带有一些Open Atrium 2模块。
答案 0 :(得分:0)
我不确定您在访问控制级别上的含义,但可以说它们是您可以调用的函数(带有返回)。
在这种情况下,您应该实现hook_node_access来控制对节点的访问,或者实现hook_field_access来控制对字段的访问。
https://api.drupal.org/api/drupal/modules%21node%21node.api.php/function/hook_node_access/7 你应该返回'NODE_ACCESS_DENY'如果你想拒绝访问,请从中获取。
https://api.drupal.org/api/drupal/modules%21field%21field.api.php/function/hook_field_access/7 如果要拒绝访问字段,则应返回FALSE。