2016-08-02 2 views
1

Я работаю над проектом cakephp. У меня проблема, но я не знаю, как ее решить. У меня есть хранилище переменных в сеансе вызова «ролей». И у меня есть некоторые маршруты, управляемые этими ролями, но отрицаемые другими ролями. Итак, как я могу настроить маршруты по таким ролям. Дайте мне советы. Большое спасибоУправление маршрутами по ролям cakephp

образец может быть, я хочу, как этот

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

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

ответ

0

Элло, мат.

Вы используете компонент 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 о авторизации, это может вам помочь.

Смежные вопросы