Comment utiliser «l'utilisateur connecté» comme argument d'accès pour un MENU_CALLBACK?

16

Je voudrais exiger que les utilisateurs soient connectés pour accéder à un MENU_CALLBACK particulier.

Les travaux suivants, mais uniquement pour le compte administrateur. Les utilisateurs réguliers se voient toujours refuser l'accès:

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

Il doit y avoir un argument d'accès qui vérifie uniquement les utilisateurs authentifiés?

jdu
la source
S'il n'y a aucun moyen de le faire, je vais créer ma propre autorisation à l'aide de hook_permission () et attribuer cette autorisation aux utilisateurs authentifiés.
jdu

Réponses:

29

access argumentsest pour les arguments qui seront passés à la fonction de rappel ... vous devez utiliser à la access callbackplace:

'access callback' => 'user_is_logged_in'

Comme user_is_logged_in()il ne prend aucun argument, vous pouvez le supprimer en toute sécurité access argumentspour votre élément de menu.

Votre code actuel ne fonctionne pour le compte administrateur que parce que la valeur par défaut access callbackest user_access(), ce qui contourne la vérification d'accès pour l'utilisateur 1.

Clive
la source
2
Le contraire est alors 'access callback' => 'user_is_anonymous'.
leymannx
1
Pour Drupal 8 sous "conditions requises" dans votre fichier YAML, ajoutez ceci: _role: 'authenticated'
coderama