基于Drupal 7中内容的页面访问控制

时间:2014-01-13 21:16:01

标签: drupal-7 access-control

总之,我正在寻找基于内容的访问控制解决方案,而不是基于用户角色的解决方案。

方案: 第1页包含来自各种访问控制级别(即级别a,b和c)的内容。

目前在Drupal中,您可以根据用户角色显示/隐藏内容。但是,如果用户不是所需的最高内容级别,我想阻止访问整个页面。

示例: 访问级别为a和/或b的用户将被阻止查看第1页,但具有至少级别c的用户将能够看到该页面的内容。

要抓住的是,每页访问级别必须是动态的,以防止在添加,更新或删除内容时出现错误的页面标记。

这样的模块是否已经存在,如果存在,它是什么?

如果不存在,是否有直接的实现方法?

服务器配置是Drupal 7,带有一些Open Atrium 2模块。

1 个答案:

答案 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。