Bonjour,
Est ce que c'est possible de redefinir un component Auth dans le controller.
mon site doit comporter 2 types de comptes
ce type d utilisateur se connecte avec un pseudo (username et mot de passe) ya un model User
1 - un compte pour les enseignantsje veux que ce type de compte d'identifie avec un email et un mot de passe (il ya un model Enseignant)
Merci pour l'aide
Oui c'est possible :
Dans le core.php :
Configure::write('Routing.prefixes', array('membre', 'enseignant'));
Tu as simplement besoin de les définir dans le AppController de cette façon :
<?php
public function beforeFilter(){
// Auth
if($this->request->prefix == 'membre' || ($this->request->params['controller'] == 'users' && $this->request->params['action'] == 'login')) {
AuthComponent::$sessionKey = 'Auth.User';
$this->Auth->loginAction = array('controller' => 'users', 'action' => 'login', 'membre' => false);
$this->Auth->loginRedirect = array('controller' => 'users', 'action' => 'home', 'membre' => true);
$this->Auth->authenticate = array(
'Form' => array(
'userModel' => 'User',
'scope' => array('User.disabled' => 0),
'fields' => array('username' => 'username')
)
);
$this->Auth->allow('login', 'logout');
}
elseif($this->request->prefix == 'enseignant' || ($this->request->params['controller'] == 'teachers' && ($this->request->params['action'] == 'login') {
AuthComponent::$sessionKey = 'Auth.Teacher';
$this->Auth->loginAction = array('controller' => 'teachers', 'action' => 'login', 'enseignant' => false);
$this->Auth->loginRedirect = array('controller' => 'teachers', 'action' => 'home', 'enseignant' => true);
$this->Auth->authenticate = array(
'Form' => array(
'userModel' => 'Teacher',
'scope' => array('Teacher.disabled' => 0),
'fields' => array('username' => 'email')
)
);
$this->Auth->allow('login', 'logout');
}
else{
$this->Auth->allow();
}
}
En imaginant que tu utilise la table et le modèle users pour tes utilisateurs et la table et le modèle teachers pour tes enseignants.
Plein de chose sont paramètrables.
Là c'est en imaginant que tu préfixe tes actions et vues avec "membre" et "enseignant" pour les actions correspondantes.
@Majid Merci c'est un article interessant je vais essayer de lire. néanmoins si y'a une autre suggestion je suis preneurs .
Effectivement les alternatives ne manquent pas, malheuresement t'aura plus de chance de trouver des références coté anglophone.
Cakephp Auth with multiple “Users” tables