2010-07-16 91 views
0

用户可能位于角色X.检查用户显示权限

存在一个视图,其中显示A允许用于角色X,而显示B受限制。

如何以编程方式检查属于角色X的用户是否可以访问显示器?

回答

0

有为什么要以编程方式做具体的原因是什么?您可以在视图UI中为视图显示设置访问规则:

编辑视图,选择显示并在“基本设置”块中查找“访问”。单击该值(默认=“无限制”),单击“覆盖”按钮覆盖该特定显示的设置并选择所需的设置。

+0

我通过自定义模块嵌入视图。我需要通过检查他的角色和每个显示器中设置的角色来检查显示给用户的显示器。 – bibstha 2010-07-18 06:20:55

0

可以在主题中内联执行,但最好将其分解为模块+主题。 (假设Drupal的7)在你的主题(节点 - contenttype.tpl.php)调用自定义访问方法:

if (module_invoke('hottopicresearch', 'display_moderated_research_access_callback', 'update', $node)) { 

实现一个模块在此访问回调:

function hottopicsresearch_display_moderated_research_access_callback($permission, $node) { 

,并检查角色

if (in_array("editorial board admin", $user->roles) || $user->uid == 1) { 

和/或节点的访问在其他的答案指出:

if (!node_access($permission, $research_parent_node)) { 

返回TRUE或FALSE。

本示例提供了具有“编辑管理员”角色的人员以及可以写入节点的人员的访问权限。没有人能看到这个指数。当然,这并不能阻止他们直接访问节点。