如何使用“用户登录”作为MENU_CALLBACK的访问参数?


15

我想要求用户登录才能访问特定的MENU_CALLBACK。

以下工作有效,但仅适用于管理员帐户。普通用户仍被拒绝访问:

'access arguments' => array('user_is_logged_in')

必须有一个仅检查经过身份验证的用户的访问参数?


如果无法执行此操作,则将使用hook_permission()创建我自己的权限,并向经过身份验证的用户分配该权限。
2012年

Answers:


29

access arguments用于将传递给回调函数的参数...您需要改为使用access callback

'access callback' => 'user_is_logged_in'

由于user_is_logged_in()不带任何参数,因此可以安全地删除access arguments菜单项。

您当前的代码仅对admin帐户有效,因为默认access callback值为user_access(),它绕过了用户1的访问检查。


2
相反的是'access callback' => 'user_is_anonymous'
leymannx

1
对于YAML文件中“要求”下的Drupal 8,添加以下代码:_role:'authenticated'–
coderama
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.