2016-08-02 75 views
1

我正在cakephp项目上工作。我有问题,但不知道如何解决它。 我在Session调用中有变量存储是'角色'。而且我有一些路线由这个角色管理,但是被其他角色拒绝。那么我怎么能通过这样的角色来配置路由。给我一个提示。谢谢你这么多按角色管理路由cakephp

样品也许我想这样

if($this->Session->read("role")=="admin"){ 
    allow("/admin/dashboard"); 
}else{ 
    denied("/admin/dashboard"); 
} 

if($this->Session->read("role")=="staff"){ 
    allow("/staff/dashboard"); 
} 

回答

0

ELLO,伙计。

您是否使用Auth组件对登录进行身份验证?如果你使用它,你可以允许和拒绝与控制器操作:

//AdminController 
$this->Auth->allow('dashboard'); //Allow the dashboard method on admin controller 
$this->Auth->deny('dashboard'); //Deny the dashboard method on admin controller 

您也可以在beforeFilter()的基础上的作用,其重定向到条件:

//ExampleController 
public function beforeFilter() 
{ 
    if($this->Session->read("role")=="admin") 
    { 
     return $this->redirect(array('controller' => 'yo_controller', 'action' => 'yo_action')); 
    } 
    //....... 
} 

如果你想,看看cookbook关于授权,它可能会帮助你。