cakephp根据用户组重定向

cakephp根据用户组重定向,cakephp,cakephp-1.3,cakephp-2.0,Cakephp,Cakephp 1.3,Cakephp 2.0,我正在使用acl,我想根据用户来自哪个组重定向用户 在我的应用程序控制器中,我有这个 public function beforeFilter() { //Configure AuthComponent //$this->Auth->allow('display'); $this->Aut

我正在使用acl,我想根据用户来自哪个组重定向用户

在我的应用程序控制器中,我有这个

public function beforeFilter() {
                                //Configure AuthComponent
                                //$this->Auth->allow('display');
                                $this->Auth->loginAction = array('controller' => 'users', 'action' => 'login');
                                $this->Auth->logoutRedirect = array('controller' => 'users', 'action' => 'login');
                                $this->Auth->loginRedirect = array('controller' => 'posts', 'action' => 'add');
    }
如果用户来自组_id 1,我应该怎么做?他/她应该被重定向到与组_id=4不同的位置,等等


谢谢

好的,例如,您正在将每个用户重定向到一个操作,比如说
仪表板
。而不是重定向用户以添加
posts
controller的操作重定向到
users
controller的
dashboard
。我假设您有另一个用于组的表,并且将其外键保留在users表中

    $this->Auth->loginRedirect = array('controller' => 'users', 'action' => 'dashboard');
在登录到
users
controller中的
dashboard
操作时,上述操作将重定向用户。现在,要将每个用户带到特定的组,请获取用户的组名并重定向到特定页面

  function dashboard() {
      //get user's group (role)
    $group_name = $this->User->Group->field('name', array('id' => $this->Auth->User('group_id')));
    //group selection logic here
    $action = 'dashboard_' . $group_name;
    $this->redirect('controller' => 'users' => 'action' => $action);
  }

因此,上面的代码将引导每个用户执行特定操作,例如,如果组名为“经理”,则用户将被重定向到“经理仪表板”。

好的,例如,您将每个用户重定向到一个操作,比如说
仪表板。而不是重定向用户以添加
posts
controller的操作重定向到
users
controller的
dashboard
。我假设您有另一个用于组的表,并且将其外键保留在users表中

    $this->Auth->loginRedirect = array('controller' => 'users', 'action' => 'dashboard');
在登录到
users
controller中的
dashboard
操作时,上述操作将重定向用户。现在,要将每个用户带到特定的组,请获取用户的组名并重定向到特定页面

  function dashboard() {
      //get user's group (role)
    $group_name = $this->User->Group->field('name', array('id' => $this->Auth->User('group_id')));
    //group selection logic here
    $action = 'dashboard_' . $group_name;
    $this->redirect('controller' => 'users' => 'action' => $action);
  }
因此,上述代码将使每个用户执行特定操作,例如,如果组名为“经理”,则用户将被重定向到“经理仪表板”