Drupal 6: forzare un redirect dalla pagina di login

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.

Lascia un commento