2016-08-02 5 views
1

Ich arbeite an CakePHP-Projekt. Ich habe ein Problem, aber ich weiß nicht, wie ich es lösen soll. Ich habe Variablenspeicher im Sitzungsaufruf ist "Rollen". Und ich habe einige Routen die von diesen Rollen verwaltet werden aber mit anderen Rollen abgestritten. Wie kann ich Routen nach Rollen wie diesem konfigurieren? Gib mir ein paar Tipps. Vielen DankRouten verwalten nach Rollen CakePHP

Probe vielleicht möchte ich wie dieses

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

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

Antwort

0

Ello, Kumpel.

Verwenden Sie die Auth-Komponente zum Authentifizieren von Logins? wenn Sie es verwenden, können Sie erlauben und Controller-Aktionen verweigern mit:

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

Sie können auch Bedingungen auf before() machen, um es zu umleiten basierend auf der Rolle:

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

Wenn Sie möchten, Werfen Sie einen Blick auf die cookbook über Autorisierung, kann es Ihnen helfen.

Verwandte Themen