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

16

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

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

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

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

Jdu
источник
Если нет способа сделать это, я буду создавать свое собственное разрешение с помощью 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