Hello,
Suie les tuto de Grafikart, Cakephp jour 4 il me semble. Il te faut un beforefilter dans ton AppController pour gérer ca,
Personnellement je n'utilise pas cette technique, mais j'avais testé :D , le code qu'explique Grafikart ressemble à peut près à celui-ci:
function beforeFilter(){
$this->Auth->loginAction = array('controller'=>'users','action'=>'login','admin'=>false); // Redirige vers "Users"
$this->Auth->authorize = array('Controller');
//$this->Auth->Authenticate // Permet de défnir la méthode d'authentification
if(!isset($this->request->params'prefix'])){ // Vérifie s'il y a un prefix, soit "admin"
$this->Auth->allow(); // l'action va être autorisé
}
if(isset($this->request->params'prefix']) && $this->request->params'prefix'] == 'admin'){
$this->layout = 'admin'; // Si page admin layout :> admin
}
}
function isAuthorized($user){
if(!isset($this->request->params'prefix'])){
return true;
}
$roles = array(
'admin' => 10,
'plus' => 5,
'membre' => 1
);
$this->set('roles',$roles); // envoie les roles
if(isset($roles$this->request->params'prefix']])){
$lvlAction = $roles$this->request->params'prefix']];
$lvlUser = $roles$user'role']];
// Si l'utilisateur est supérieur au niveau, il a accès
if($lvlUser >= $lvlAction){
return true;
}else{
return false;
}
}
return true;
}
Hésite pas à montrer ton code, c'est plus simple à comprendre ce que tu veux dire. A+