如果用户属于某个角色,如何在用户登录后将其重定向到特定页面?

jin*_*ini 7 drupal drupal-6 drupal-forms

我们的成员列表中的某些用户附加了角色"供应商".所有这些成员在登录时都会被重定向到某个页面.如何实现这一目标?

Fel*_*Eve 11

皮肤这种猫的方法不止一种......这是我首选的Drupal 7方法:

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


小智 6

对于Drupal 7

操作 - > admin/config/system/actions - 重定向到URL

然后启用触发模块

触发 - > / admin/structure/trigger/node

如果您尝试登录重定向,请按照此操作(在页面中选择用户选项卡)

转到 - > admin/structure/trigger/user

然后 触发:用户登录后

选择一个操作 - > 重定向到URL并分配.

然后清除缓存.

它会对你有用!


Rak*_*ard 4

您可以在 Drupal 中定义操作和触发器:

操作( admin/settings/actions ) -重定向到特定页面

触发器 ( admin/build/trigger/user ) -用户登录后

尝试这个。

编辑(见评论):

创建一个小模块来检查用户的登录过程,他拥有什么角色,然后在必要时进行重定向。 drupal_goto => drupal 中的重定向功能

hook_user =>触发用户操作

对于用户的角色:

GLOBAL $user;
$roles = $user->roles;
$vendor = in_array('vendor', $roles);
Run Code Online (Sandbox Code Playgroud)

然后 $vendor 持有一个 true/false 值将决定是否重定向。

如果您不知道如何执行此操作,请在此处发帖,我将为您编写该模块。但这也许是为您编写未来的 drupa 模块的一个很好的实践。:)