CakePHP登录重定向管理员/用户

时间:2016-12-09 21:14:26

标签: authentication cakephp login

我正在使用登录功能,如下所示。

public function login()
{

    if ($this->request->is('post')) {
        $user = $this->Auth->identify();
        if ($user) {
            if ($user['warning'] == false) {
                $this->Auth->setUser($user);
                if ($this->Auth->user('role') == 'admin') {
                    if(isset($this->Auth->redirectUrl)){
                        return $this->redirect($this->Auth->redirectUrl());
                    }
                    else return $this->redirect(['controller' => 'adresses','action' => 'adminindex']);


                } elseif ($this->Auth->user('role') == 'user') {
                    if(isset($this->Auth->redirectUrl)){
                        return $this->redirect($this->Auth->redirectUrl());
                    }
                    else return $this->redirect(['controller' => 'adresses','action' => 'index']);
                }
            }
            else{
                $this->Flash->error(__('XXXX'));
                return $this->redirect(['action' => 'login']);
            }
        }
        $this->Flash->error(__('XXXXX'));
    }
}

我现在遇到的问题是我似乎无法读出redirectURL - 因为每次我来自需要登录用户的链接时,我都会转发到我的AppController中定义的地址索引。但我需要它重定向到adminindex。

我可以为管理员和用户切换Fallback吗?或者有人知道如何检查redirectUrl是否设置?

1 个答案:

答案 0 :(得分:2)

redirectUrlAuthComponent中的函数而非变量,因此我认为您需要在isset项检查中添加括号。

if (isset($this->Auth->redirectUrl())) 
相关问题