Come utilizzare "utente registrato" come argomento di accesso per un MENU_CALLBACK?


16

Vorrei richiedere che gli utenti siano connessi per accedere a un particolare MENU_CALLBACK.

Di seguito funziona, ma solo per l'account amministratore. Agli utenti regolari viene comunque negato l'accesso:

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

Ci deve essere un argomento di accesso che controlla solo gli utenti autenticati?


Se non c'è modo di farlo, creerò la mia autorizzazione usando hook_permission () e assegnando tale autorizzazione agli utenti autenticati.
jdu,

Risposte:


29

access arguments è per gli argomenti che verranno passati alla funzione di callback ... è necessario utilizzare access callback invece :

'access callback' => 'user_is_logged_in'

Da user_is_logged_in() che non accetta alcun argomento, è possibile rimuovere in modo sicuro access argumentsla voce di menu.

Il codice corrente funziona per l'account admin solo perché il valore predefinito access callbackè user_access(), che ignora il controllo di accesso per l'utente 1.


2
Quindi è l'opposto 'access callback' => 'user_is_anonymous'.
leymannx,

1
Per Drupal 8 sotto "requisiti" nel tuo file YAML, aggiungi questo: _role: 'authenticated'
coderama
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.