How to redirect user to a specific page after they

2019-01-26 10:29发布

问题:

We have certain users in our member list that have a role "vendor" attached to them. All such members are to be redirected to a certain page upon login. How can this be accomplished?

回答1:

You can define actions and triggers in Drupal:

Action(admin/settings/actions) - Redirect to a specific page

Trigger (admin/build/trigger/user) - After user has logged in

Try this.

EDIT (see comments):

Create a small module to check on a user's login process what role he has and then redirect if neccesary. drupal_goto => redirect-function in drupal

hook_user =>triggers on user operations

And for the user's roles:

GLOBAL $user;
$roles = $user->roles;
$vendor = in_array('vendor', $roles);

$vendor then holds a true/false value will decide to redirect or not.

If you don't know how to do this, just post here and I'll write the module for you. But this would be a good practice for writing future drupa modules for you perhaps. :)



回答2:

There is more than one way to skin this cat... This is my preferred Drupal 7 method:

function hook_user_login(&$edit, $account) {
  $edit['redirect'] = 'node/123';
}


回答3:

For Drupal 7

Action --> admin/config/system/actions - Redirect to URL

then enable your trigger module

Trigger --> /admin/structure/trigger/node

if your are trying to login redirect just follow this(select user tab in the page)

go to --> admin/structure/trigger/user

then Trigger: After a user has logged in

choose an action -->Redirect to URL and assign.

Then clear the cache.

It will work for you!



回答4:

There are 2 ways in DRUPAL 7

1) Using action and trigger see this http://drupal.org/node/298506

2)if using custom module

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; 

} 

}


回答5:

You can use Rules

Events: User has logged in.
Condition: User has role
Actions: Page redirect



回答6:

There are modules that do this (besides Trigger+Actions), such as LoginDestination: http://drupal.org/project/login_destination. This Drupal forum post has a bit more info about it as well.



回答7:

following condition for hook_user

if($op =='login') drupal_goto("your path");


回答8:

This can be achieved by using a combination of content access and login toboggan modules. You'll be able to restrict pages and prompt user to login to access them.