Answers:
您需要使用Content Access模块以获得细粒度的节点查看权限。
该模块允许您按角色和作者管理内容类型的权限。它允许您指定每种内容类型的自定义视图,编辑和删除权限。(可选)您可以启用每个内容访问设置,以便可以自定义每个内容节点的访问。
如果您希望在模块或节点(带有PHP输入过滤器)中以编程方式进行操作,则可以使用user_is_logged_in()进行以下操作:
<?php
if (!user_is_logged_in()) drupal_not_found();
?>
尽管Content Access模块很好地解决了该问题,但它是一个额外的模块,并且在D7上还不稳定。
仅使用常用模块的替代方法是:
创建节点,但将其设置为未发布
创建一个节点视图,例如“角色限制的内容”。显示完整节点的内容以复制标准节点/%显示。
将视图限制为所需的角色(例如“角色|经过身份验证的用户”)
将视图路径设置为:
restricted-content/%通过Nid设置上下文过滤器。
删除默认的“内容已发布”过滤器。
现在,您将拥有一个与node /%相同的视图,除了它还处理未发布的内容并受角色限制。