The Login Destination module provides a way to customize the destination that a
user is redirected to after logging in, registering to the site, using a
one-time login link or logging out.
The configuration consists of specifying so called login destination rules that
are evaluated when the login or logout takes place. Those rules are evaluated
against certain conditions and the user is taken to the destination specified
by the first matching rule. If the destination is empty, no redirect is
performed aka user is taken to the default destination. You can define pages
from which a user logs in/out to be a matching criterion. You can also select
certain user roles that are matched against those of a user. Note that only one
role has to match in order for the redirect to take place. If no roles are
selected the redirect is performed regardless of user roles. You can also
provide your own conditions by specifying PHP snippets (the PHP Filter has to
be enabled). The snippet should return TRUE if the condition matches and FALSE
There are no separate triggers for login and registration; instead you can
differentiate them by the specifying the pages that a user comes from:
- user - the user login form.
- user/register - the user registration form.
- user/*/edit - one-time login link, after the user has set the password.
- other - the login block or login forms embedded by other modules.
Please note that a user will be redirected when they register, even though they
may not be logged in afterwards immediately (e.g. because of email validation).
You can use this behavior to send the user to a page that contains further
The destination you specify can be an internal page or an external URL.
Remember to precede the url with http://. You can also use the tag to
redirect to the front page or the tag to redirect to the page where
the user was before login/logout, aka the current page. In case of
login/register form the page from which the user entered the form is treaded as
the current page. Note that if you provide your own login/logout links you have
to add the 'current' GET parameter to them so Login Destination knows where
your users come from.
In some cases you will also need to provide the destination in a dynamic way by
using PHP snippets (the PHP Filter has to be enabled). The snippet's return
variable can be a string, for straight pages and urls, or an array for more
advanced options. The array should be in a form that the url function will
understand, e.g. %example. For more information, see the online API entry for
url function. In most cases you will use it to specify GET
parameters and an anchor ("#"). Please study the examples below:
Take the user to the administration panel with underlying blog page:
<?php return array('blog', array('fragment' => 'overlay=admin/config', ), ); ?>
Take the user to the front page and specify some custom parameters:
<?php return array('<front>', array('query' => array('param1' => 'value1', 'param2' => 'value2', ), ), ); ?>
Take the user to the default page:
<?php return NULL; ?>
It also possible to set some advanced parameters on the setting page. Every
time in Drupal you can specify the 'destination' GET parameter in url to
redirect the user to a custom page. If you check the option
'Preserve the destination parameter' Login Destination will give priority to
this parameter over its own module settings. However with this option enabled
the redirect from the login block will not work. In some rare cases you can
also redirect the user just after using the one-time login link, before given
the possibility to change their password. Do this by checking the
'Redirect immediately after using one-time login link' option.
This project is GPL v2 software. See the LICENSE.txt file in this directory for
- Jerome Danthinne (https://github.com/jdanthinne/)
This module was originally maintained for Drupal by:
- Moshe Weitzman
- ARDAS group
- rsvelko from segments.at
- mithy http://drupal.org/user/258911/