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.


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.


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.