Bonjour à vous,
Tout d'abord je tiens à vous féliciter pour ce site super et bien expliquer.
Je découvre cakePHP et ce site m'aide beaucoup dans mon apprentissage.
Actuellement, je bute sur un problème lors de l'identification en utilisant le composant Auth.
Je n'utilise pas de UserController mais un InstructorController (tout comme un model Instructor), j'aimerai effectuer identification sur l'adresse mail de l'instructeur. Où puis-je renseigner dans cakePHP, le faites de ne pas vérifier sur le champs "username" mais "Mail" ?
Les autres parties du site n'ont pas besoin d'être protégée, ce n'est qu'un site d'information, seule la partie d'administration doit être refusée à l'utilisateur anonyme.
Voici mon AdministrationController
<?php
class AdministrationController extends AppController {
public $uses = array('Members', 'Instructors', 'Addresses', 'Lessons', 'Schedules');
public $components = array(
'Session',
'Auth' => array(
'loginAction' => array('controller' => 'Administration', 'action' => 'login',),
'loginRedirect' => array('controller' => 'Administration', 'action' => 'login'),
'logoutRedirect' => array('controller' => 'Administration', 'action' => 'login'),
'authError' => "Vous n'avez pas accès à cette page",
'authorize' => array('Controller'),
'authenticate' => array(
'Form' => array('userModel' => 'Instructors', 'username' => 'Mail')
)
)
);
public function isAuthorized($instructor) {
return true;
}
public function beforeFilter() {
$this->Auth->allow('login');
parent::beforeFilter();
}
function login() {
if ($this->request->is('post')) {
if ($this->Auth->login()) {
$this->redirect($this->Auth->redirect());
} else {
$this->Session->setFlash('Votre e-mail ou mot de passe est incorrecte.');
}
}
}
function logout() {
$this->redirect($this->Auth->logout());
}
function index() {
}
}