Bonjour tout le monde,
Voilà j'ai un petit soucis avec la redirection du login, j'aimerais que si l'on se connecte en tant qu'admin il me redirige vers les pages prefixées avec admin_ et si l'on se connecte en membre vers les pages prefixées membre_
Voici mon code : UsersController
function login(){
$this->layout = 'connexion';
if($this->request->is('post')){
if($this->Auth->login()){
// je pense que c'est ici qu'il faut mettre une condition en fonction du rôle rediriger vers
admin/index ou membre/index
$this->redirect($this->Auth->redirect());
}else{
$this->Session->setFlash("Votre login ou votre mot de passe ne correspond pas","notif",array('type'=>'error'));
}
}
}
AppController
class AppController extends Controller{
public $helpers = array('Text','Form','Html','Session','Cache');
public $components = array('Session','Auth','Cookie');
function beforeFilter(){
$this->Auth->loginAction = array('controller'=>'users','action'=>'login','admin'=>false,'membre'=>false);
$this->Auth->authorize = array('Controller');
if(!isset($this->request->params'prefix'])){
$this->Auth->allow();
}
if(isset($this->request->params'prefix']) && $this->request->params'prefix'] == 'admin'){
$this->layout = 'admin';
}
}
function isAuthorized($user){
if(!isset($this->request->params'prefix'])){
return true;
}
$roles = array(
'admin' => 10,
'membre' => 5
);
debug($roles$this->request->params'prefix']]);
debug($this->request->params'prefix']);
if(isset($roles$this->request->params'prefix']])){
$lvlAction = $roles$this->request->params'prefix']];
$lvlUser = $roles$user'role']];
debug($lvlAction);
debug($lvlUser);
if($lvlUser >= $lvlAction){
return true;
}else{
return false;
}
}
return false;
}
}
Dans ma BDD USER, j'ai un champs rôle (admin ou membre)
Merci du coup de main !