Как использовать «пользователь вошел в систему» ​​в качестве аргумента доступа для MENU_CALLBACK?


16

Я хотел бы потребовать, чтобы пользователи вошли в систему для доступа к определенному MENU_CALLBACK.

Следующее работает, но только для учетной записи администратора. Обычным пользователям по-прежнему отказано в доступе:

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

Должен быть аргумент доступа, который просто проверяет аутентифицированных пользователей?


Если нет способа сделать это, я буду создавать свое собственное разрешение с помощью hook_permission () и назначать авторизованным пользователям это разрешение.
2012 года

Ответы:


29

access argumentsдля аргументов, которые будут переданы в функцию обратного вызова ... вы должны использовать access callbackвместо:

'access callback' => 'user_is_logged_in'

Поскольку user_is_logged_in()не принимает никаких аргументов, вы можете смело удалять access argumentsдля своего пункта меню.

Ваш текущий код работает для учетной записи администратора только потому, что по умолчанию access callbackиспользуется user_access(), что обходит проверку доступа для пользователя 1.


2
Противоположность тогда есть 'access callback' => 'user_is_anonymous'.
leymannx

1
Для Drupal 8 под «требованиями» в вашем файле YAML добавьте: _role: 'authenticated'
coderama
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.