Wie verwende ich "angemeldeter Benutzer" als Zugriffsargument für ein MENU_CALLBACK?

16

Ich möchte, dass Benutzer angemeldet sind, um auf ein bestimmtes MENU_CALLBACK zugreifen zu können.

Folgendes funktioniert, aber nur für den Admin-Account. Regulären Benutzern wird der Zugriff weiterhin verweigert:

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

Es muss ein Zugriffsargument geben, das nur nach authentifizierten Benutzern sucht.

jdu
quelle
Wenn dies nicht möglich ist, erstelle ich mithilfe von hook_permission () meine eigene Berechtigung und weise authentifizierten Benutzern diese Berechtigung zu.
jdu

Antworten:

29

access argumentsist für die Argumente, die an die Rückruffunktion übergeben werden ... Sie müssen access callbackstattdessen Folgendes verwenden :

'access callback' => 'user_is_logged_in'

Da user_is_logged_in()keine Argumente akzeptiert werden, können Sie diese sicher access argumentsfür Ihren Menüpunkt entfernen .

Ihr aktueller Code funktioniert für das Administratorkonto nur , weil der Standard access callbackist user_access(), die die Zugriffsüberprüfung für Benutzer umgehen 1.

Clive
quelle
2
Das Gegenteil ist dann 'access callback' => 'user_is_anonymous'.
Leymannx
1
Fügen Sie für Drupal 8 unter "Anforderungen" in Ihrer YAML-Datei Folgendes hinzu: _role: 'authenticated'
coderama