0

我正在寻找更改croogo 1.3“loginRedirect”的默认重定向

默认重定向是“用户/用户/登录”

我的情况是按角色重定向 [admin][register][...]

我的用户控制器(操作:登录):

public function login() {
    $this->set('title_for_layout', __d('croogo', 'Log in'));
    if ($this->request->is('post')) {
        Croogo::dispatchEvent('Controller.Users.beforeLogin', $this);
        if ($this->Auth->login()) {         
            switch($this->Auth->user('role_id')){
                case '1': // admin
                    $this->Auth->loginRedirect = array('controller'=>'users','action'=>'admin_index','prefix'=>'admin','admin'=>true);
                    break;
                case '4': // manager
                    $this->Auth->loginRedirect = array('controller'=>'managers','action'=>'index','prefix'=>'','manager'=>true);
                break; 
            }   
        } else {
            Croogo::dispatchEvent('Controller.Users.loginFailure', $this);
            $this->Session->setFlash($this->Auth->authError, 'default', array('class' => 'error'), 'auth');
            $this->redirect($this->Auth->loginAction);
        }

    }           
}

重定向中的问题不起作用......当我有案例管理器'4'时......它总是重定向到 /admin/index

4

1 回答 1

0

首先,

AuthComponent 不进行重定向。你需要打电话

$this->redirect($this->Auth->redirect());

在你的switch陈述之后。

第二,

这看起来不像 Croogo 1.3。事件只在 CakePHP 2.x 中引入,所以这至少必须是 Croogo 1.4.x。

于 2014-08-05T05:55:37.937 回答