drupal - create - ¿Cómo redirige al usuario a una página específica después de que inicie sesión si pertenece a un determinado rol?
element drupal 8 (8)
Puedes usar Reglas
Eventos: el usuario ha iniciado sesión.
Condición: el usuario tiene un rol
Acciones: redirigir página
Tenemos ciertos usuarios en nuestra lista de miembros que tienen un "proveedor" de roles adjunto a ellos. Todos esos miembros deben ser redirigidos a una determinada página al iniciar sesión. ¿Cómo se puede lograr esto?
Hay módulos que hacen esto (además de Trigger + Actions), como LoginDestination: http://drupal.org/project/login_destination . Esta publicación en el foro de Drupal también contiene un poco más de información al respecto.
Puede definir acciones y activadores en Drupal:
Acción ( admin / settings / actions ) - Redirigir a una página específica
Trigger ( admin / build / trigger / user ) - Después de que el usuario haya iniciado sesión
Prueba esto.
EDITAR (ver comentarios):
Cree un pequeño módulo para verificar el proceso de inicio de sesión de un usuario, qué función tiene y luego redirija si es necesario. drupal_goto => redirect-function en drupal
hook_user => desencadena en las operaciones del usuario
Y para los roles del usuario:
GLOBAL $user;
$roles = $user->roles;
$vendor = in_array(''vendor'', $roles);
$ proveedor entonces tiene un valor verdadero / falso decidirá redirigir o no.
Si no sabe cómo hacerlo, solo publique aquí y escribiré el módulo por usted. Pero esta sería una buena práctica para escribir futuros módulos drupa para usted tal vez. :)
Hay 2 formas en DRUPAL 7
1) Usando acción y disparador, vea esto http://drupal.org/node/298506
2) si usa un módulo personalizado
function YOURMODULE_user_login(&$edit, $account) {
if (!isset($_POST[''form_id'']) || $_POST[''form_id''] != ''user_pass_reset'' || variable_get(''login_destination_immediate_redirect'', FALSE)) {
if(in_array(''THE-ROLE-WANTED-TO-REDIRECT'',$account->roles)):
drupal_goto(''PATH'');
else: drupal_goto(''user/''.$account->uid);
endif;
}
}
siguiente condición para hook_user
if($op ==''login'') drupal_goto("your path");
Hay más de una manera de despellejar a este gato ... Este es mi método preferido de Drupal 7:
function hook_user_login(&$edit, $account) {
$edit[''redirect''] = ''node/123'';
}
Para Drupal 7
Acción -> admin / config / system / actions - Redirigir a URL
luego habilite su módulo de activación
Disparador -> / admin / structure / trigger / node
si estás intentando redireccionar, simplemente sigue esto (selecciona la pestaña de usuario en la página)
ve a -> admin / structure / trigger / user
luego Disparador: después de que un usuario haya iniciado sesión
elige una acción -> Redirigir a URL y asignar.
Luego borra la caché.
¡Funcionará para ti!
Esto se puede lograr mediante el uso de una combinación de acceso a contenido y módulos de tobogán de inicio de sesión . Podrá restringir las páginas y solicitar al usuario que inicie sesión para acceder a ellas.