Bonjour,
Je viens de remarquer que lorsque je veux modifié les mots de passe à partir de l'admin, le nouveau mdp n'est pas sécurisé.
voici mon code de ma fonction du UsersController.php
function admin_edit($id = null){
if($this->request->is('put')){
$d = $this->request->data'User'];
if($d'password'] != $d'passwordconfirm']){
$this->Session->setFlash("Les mots de passe ne correspondent pas", "notif", array('type'=>'error'));
}else{
if(empty($d'password']))
unset($d'password']);
if($this->User->save($d)){
($this->request->is('put')) ? $this->Session->setFlash("Les informations de l'utilisateur ont bien été modifiées", 'notif'):$this->Session->setFlash("Un nouvel utilisateur a bien été ajouté", 'notif');
$this->redirect(array('action'=>'index'));
}
}
}elseif($this->request->is('post')){
$d = $this->request->data'User'];
if($d'password'] != $d'passwordconfirm']){
$this->Session->setFlash("Les mots de passe ne correspondent pas", "notif", array('type'=>'error'));
}else{
if($this->User->save($d)){
($this->request->is('put')) ? $this->Session->setFlash("Les informations de l'utilisateur ont bien été modifiées", 'notif'):$this->Session->setFlash("Un nouvel utilisateur a bien été ajouté", 'notif');
$this->redirect(array('action'=>'index'));
}
}
}elseif($id){
$this->User->id = $id;
$this->request->data = $this->User->read('username,mail,role,active,id');
}
$d = array();
$d'roles'] = array(
'admin' => 'admin',
);
$this->set($d);
}
Comment sécuriser la modification du mot de passe comme dans ma fonction profil ?
C'est à dire ainsi
if(!empty($d'User']'pass1'])){
if($d'User']'pass1']==$d'User']'pass2']){
$d'User']'password'] = Security::hash($d'User']'pass1'],null,true);
}else{
$passError = true;
}
}
Merci de vos réponses.
Salut graf en parle dans son tu sont tuto, voilà ce que j'ai mis dans mon beforeSave de mon model User
$this->data'User']'password'] = AuthComponent::password($this->data'User']'password']);
Merci elscorto,
c'est tellement logique, que je me sens bête de ne pas y avoir penser à mettre cela dans mon beforeSave.
j'ai mis ceci dans mon cas
$this->data'User']'password'] = Security::hash($this->data'User']'password'],null,true);
Merci de m'avoir aiguiller