Jak użyć „zalogowanego użytkownika” jako argumentu dostępu do MENU_CALLBACK?

15

Chciałbym wymagać, aby użytkownicy byli zalogowani, aby uzyskać dostęp do określonego MENU_CALLBACK.

Poniższe działa, ale tylko dla konta administratora. Zwykłym użytkownikom nadal odmawia się dostępu:

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

Musi istnieć argument dostępu, który sprawdza tylko uwierzytelnionych użytkowników?

jdu
źródło
Jeśli nie ma na to sposobu, utworzę własne uprawnienie za pomocą hook_permission () i przypiszę uwierzytelnionym użytkownikom to uprawnienie.
jdu

Odpowiedzi:

29

access argumentsdotyczy argumentów, które zostaną przekazane do funkcji zwrotnej ... musisz access callbackzamiast tego użyć :

'access callback' => 'user_is_logged_in'

Ponieważ user_is_logged_in()nie przyjmuje żadnych argumentów, możesz bezpiecznie usunąć access argumentsswój element menu.

Twój obecny kod działa tylko dla konta administratora, ponieważ domyślnie access callbackjest to user_access(), co pomija kontrolę dostępu dla użytkownika 1.

Clive
źródło
2
Przeciwnie jest 'access callback' => 'user_is_anonymous'.
leymannx
1
Dla Drupala 8 w „wymaganiach” w pliku YAML, dodaj to: _role: „uwierzytelniony”
coderama