Hi All,
In this blog we will discuss how to change the password in cakePhp by using Auth.
Firstly, in your model you have to define a function beforeSave which will hash your password to auth password, you can do this by writing the below code:
public function beforeSave($options = array()) {
if (isset($this->data[$this->alias]['password'])) {
$this->data[$this->alias]['password'] = AuthComponent::password($this->data[$this->alias]['password']);
}
return true;
}
In your change Password function you have to write-
public function changePassword() {
if ($this->data) {
if (!empty($this->data['User']['password']) && !empty($this->data['User']['repassword'])) {
if ($this->data['User']['password'] == $this->data['User']['repassword']) {
$userInfo=$this->User->findById($this->data);
if(AuthComponent::password($this->data['User']['old_password'])==$userInfo['User']['password']){
if ($this->User->save($this->data)) {
$this->Session->setFlash('Password Changed Successfully', 'default', array('class' => 'green'));
$this->redirect('/admin/Users/dashboard');
} }else {
$this->Session->setFlash('Unable to save password', 'default', array('class' => 'red'));
$this->redirect('/admin/Users/changePassword');
}
} else {
$this->Session->setFlash('Password and Re password does not match', 'default', array('class' => 'red'));
$this->redirect('/admin/Users/changePassword');
}
} else {
$this->Session->setFlash('Password and Re password cannot be empty', 'default', array('class' => 'red'));
$this->redirect('/admin/Users/changePassword');
}
}
}
Lastly, In your view.ctp file you have write the below code:
echo $this->Form->create('User');
echo $this->Form->input('id');
echo $this->Form->input('old_password');
echo $this->Form->input('password1');
echo $this->Form->input('repassword');
echo $this->Form->end('Submit');
1 Comment(s)