form create drupal drupal-6 drupal-modules drupal-fapi

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?



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!