我正在尝试重定向任何已记录的用户尝试访问/ user。
在我的模块中,登录后重定向的下一个代码:
function ccmm_user($op, &$edit, &$account, &$category = NULL)
{
switch($op){
case 'login':
$_REQUEST['destination'] = 'admin/';
break;
}
}
这很有效。然后我尝试使用 case'view':但它没用。
答案 0 :(得分:1)
听起来您希望用户永远无法访问/ user页面,无论是登录还是手动访问。
在这种情况下,您应该在hook_init函数中进行简单的检查,如下所示:
function ccmm_init() {
if ( $_REQUEST['q'] == '/user' ) {
drupal_goto('/admin'); // Or where ever you want to send them
}
}
当然你应该做很多检查,你可能想看一下使用Global Redirect模块,不要担心它只有8k大小所以关于添加另一个模块的问题不是在这种情况下这样的问题。
答案 1 :(得分:0)
您可以尝试Login Destination module而不是编写自己的代码。
答案 2 :(得分:0)
如果您不熟悉Login Toboggan模块,那么您应该是。
答案 3 :(得分:0)
更好的方法是在模块中使用hook_menu_alter
删除/user/%user_uid_optional
的菜单条目,或将其移至其他网址。
这样你不仅可以处理登录(就像你现在这样),而且可以访问/ user /(警告:包括管理员用户的那些)。或者您可以使用相同的挂钩来修改访问权限检查,并仅将其授予具有更高权限的用户,例如administer users