Problema: c’è un certo indirizzo il cui accesso è consentito solo ad utenti loggati; si vuole che, nel caso di accesso da parte di un utente anonimo, questo venga girato alla pagina di login e, in seguito all’autenticazione, ritorni sulla pagina iniziale.
Soluzione: usare quello che Drupal già fornisce!
Supponiamo di gestire l’accesso alla pagina all’interno di un modulo con il classico hook_menu. Se l’utente non è loggato, basta aggiungere questa riga all’interno del nostro codice:
drupal_goto(‘user’,’destination=URL_REDIRECT’);
in cui URL_REDIRECT è il REQUEST_URI a cui rigirare l’utente dopo l’operazione di login. Quindi, ad esempio, se il nostro hook_menu ha questa entry:
$items[‘protected/url’] = array(
‘title’ => ‘Page title’,
‘description’ => ‘Page description’,
‘page callback’ => ‘my_function’,
‘type’ => MENU_CALLBACK,
);
all’interno di my_function, nel l’utente risulti non loggato, basta inserire la riga seguente:
drupal_goto(‘user’,’destination=protected/url’);
ed il gioco è fatto.