在drupal中设置页面访问权限

Nik*_*hil 5 drupal

我是drupal的新手.我猜这是一个非常愚蠢的问题.我启用了PHP过滤器模块,以便我可以在其中创建一个包含自己的PHP代码的新页面.我希望只有经过身份验证的用户才能访问此特定页面,匿名用户无法看到此页面.我怎样才能做到这一点?我可以为drupal中的各个页面设置权限吗?或者是否可以确定匿名用户是否试图通过PHP代码访问当前页面?

Eli*_*sky 5

既然你已经提到你是Drupal的新手,请注意 - 使用PHP过滤器来定制自定义代码被认为是不好的做法.这是一个黑客,这是一个安全问题.

编写自定义模块要好得多,它可以实现自己的自定义权限,您可以检查等等.有一个很好的示例模块,您可以查看它应该看起来如何.显然,请查看手册.它真的不像听起来那么难.

但回到你的问题.您可以在PHP过滤页面中添加以下行:

global $user;
Run Code Online (Sandbox Code Playgroud)

这将使您可以访问代表当前用户的对象.$user->roles是一个表示用户角色的数组.您可以检查它是否authenticated user(或稍微好一点 - 您创建的自定义角色).