2016-12-09 3 views
0

Я использую функцию входа в систему, как и следовало.CakePHP Login redirect admin/user

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 - потому что каждый раз, когда я приезжаю из Link, которая требует вошедшего пользователя я получаю перенаправлен на индекс АДРЕСА, который определяется в моем AppController. Но мне нужно, чтобы он перенаправлялся на adminindex.

Могу ли я переключить резерв для администратора и пользователя. Или кто-нибудь знает, как проверить, является ли redirectUrl isset?

ответ

3

redirectUrl является функцией в AuthComponent не переменной, поэтому, я думаю, вам нужно добавить круглые скобки в isset чеках.

if (isset($this->Auth->redirectUrl()))