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?


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.


2
Przeciwnie jest 'access callback' => 'user_is_anonymous'.
leymannx

1
Dla Drupala 8 w „wymaganiach” w pliku YAML, dodaj to: _role: „uwierzytelniony”
coderama
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.