0

我正在尝试重定向任何登录的用户尝试访问 /user。

在我的模块中,登录后要重定向的下一个代码:

function ccmm_user($op, &$edit, &$account, &$category = NULL)
{
    switch($op){
        case 'login':
            $_REQUEST['destination'] = 'admin/';
            break;
    }
}

这是有效的。然后我尝试使用case 'view':但它没用。

4

4 回答 4

1

听起来您希望用户永远不要进入 /user 页面,无论是在登录时还是手动去那里。

在这种情况下,您应该像这样在 hook_init 函数中进行简单的检查:

function ccmm_init() {
  if ( $_REQUEST['q'] == '/user' ) {
    drupal_goto('/admin'); // Or where ever you want to send them
  }
}

当然,你应该做很多检查,你可能想考虑使用全局重定向模块,别担心它只有 8k 大小,所以在这种情况下,添加另一个模块的问题不是问题.

于 2009-06-27T15:39:26.503 回答
0

更好的方法是hook_menu_alter在您的模块中使用仅删除 的菜单条目/user/%user_uid_optional,或将其移动到另一个 URL。

这样,您不仅会处理登录(就像您目前所做的那样),而且会处理对 /user/ 的任何访问(警告:包括管理员用户的访问)。或者您可以使用相同的钩子来修改访问检查并仅将其授予具有更高权限的用户,例如administer users

于 2009-06-28T13:42:13.800 回答
0

您可以尝试登录目标模块,而不是编写自己的代码。

于 2009-06-26T16:34:29.483 回答
0

如果您不熟悉Login Toboggan模块,那么您应该熟悉。

于 2009-06-26T18:13:08.733 回答