2014-02-24 81 views
1

我已经为不同的节点类型设置了具有角色访问权限的站点。 对于只有一个节点,我必须删除只有一个角色的访问权限,其他人将保持不变。 由于该站点已经安装了许多模块,我宁愿只使用钩子函数而不是模块作为nodeaccess或内容访问。 有人可以请为hook脚本提供建议吗?drupal 7限制单个节点的角色访问

回答

1

这应该工作,根据需要调整操作,用户角色和节点类型:

function mymodule_node_access($node, $op, $account) { 
    if (in_array('the role', $account->roles) && $op == 'view' && $node->type == 'article' && $node->nid == 42) { 
     return NODE_ACCESS_DENY; 
} 
} 

你可以离开了$运算和$节点 - >类型的条件语句,如果这仅仅是一个单一的NID 。

Documentation for hook_node_access

+0

亲爱Doodero 非常感谢你的回答。 我想用这个认证的用户,其他用户角色允许有acces。我尝试认证作为角色,但这似乎不起作用。被认证不是一个真正的角色? –