Bonjour,
Je recherche une solution pour pouvoir utiliser la fonction login sur deux tables différentes :
if($this->request->is('post')) {
if($this->Auth->login()) {
$this->Session->setFlash("Vous êtes maintenant connecté", "notif");
$this->redirect('/users/');
}
else {
if( LA ON VERIFIE QUE LES INFOS NE SONT PAS DANS LA DEUXIEME TABLE) {
LA ON LOGUE L'UTILISATEUR
}
else {
// pas de couple login/pass dans aucune des tables
$this->Session->setFlash("Idenfiants incorrects", "notif", array("type"=>"error"));
}
}
Si quelqu'un a une idée, elle sera la bienvenue :-)
Merci d'avance,
Salut à toi,
Très facile à mettre en place, comme ceci :
$this->loadModel('Table2');
$user = $this->Table2->find('first', array(
'conditions' => array('Table2.username' => $username, 'Table2.password' => $password)
));
if (!empty($user)) {
$this->User->id = $user'Table2']'id'];
$this->Auth->login($user'Table2']);
}
Pour aider d'autres, si besoin, voilà le code mis en place (grâce à mespeche) :
function login() {
if($this->request->is('post')) {
if($this->Auth->login()) {
$this->Session->setFlash("Vous êtes maintenant connecté", "notif");
$this->redirect('/users/');
}
else {
$username=$this->request->data'User']'username'];
$password=(Security::hash($this->request->data'User']'password'], null, true));
$this->loadModel('AUTRE_TABLE');
$user = $this->AUTRE_TABLE->find('first', array(
'conditions' => array('AUTRE_TABLE.login' => $username, 'AUTRE_TABLE.password' => $password)
));
if (!empty($user)) {
$this->User->id = $user'AUTRE_TABLE']'id'];
$this->Auth->login($user'AUTRE_TABLE']);
}
$this->Session->setFlash("Idenfiants incorrects", "notif", array("type"=>"error"));
//debug(Security::hash($this->request->data'User']'password']), null, true);
}
}
}
Ok, avec les modifs pour adapter à mon code, ça marche niquel,
Ta solution est top, merci beaucoup !