Ok, you want to change a password in cake.

you have to have somthing like this:

old password: _____________________
new password: ____________________
confirm new password:________________

right??

so first you have to make a method in UsersController called 
changePassword(){}
and a view in foldes Users called change_password.ctp

in the change password you have to put:

  public function changePassword($id = null) { 
        if ($this->data) { 
            if ($this->User->save($this->data)) 
                $this->Session->setFlash('Password changed successfully'); 
            else
                $this->Session->setFlash('The password was not changed'); 
        } else { 
            $this->data = $this->User->read(null, $id); 
        } 
    }

in change_password.ctp:

<?php echo $this->Form->create();?> 
<?php echo $this->Form->input('id');?> 
<?php echo 
$this->Form->input('current_password',array('type'=>'password'));?> 
<?php echo $this->Form->input('password',array('label'=>'New 
password','value'=>''));?> 
<?php echo 
$this->Form->input('password_confirmation',array('label'=>'confirm your 
password','type'=>'password', 'value'=>''));?> 
<?php echo $this->Form->end('change');?>

in User model put:

public $validate = array( 
     
        'password' => array( 
            'Not empty' => array( 
                'rule' => 'notEmpty', 'message' => 'please enter your 
password' 
            ), 
            'Match passwords' => array( 
                'rule' => 'matchPasswords', 
                'message' => 'your passwords do not match' 
            ) 
        ), 
        'password_confirmation' => array( 
            'Not empty' => array( 
                'rule' => 'notEmpty', 'message' => 'please confirm your 
password' 
            ) 
        ), 
        'current_password' => array( 
            'notempty' => array('rule' => 'notEmpty', 'message' => 'please 
enter your old password'), 
            'check password' => array('rule' => 'checkPassword', 
                'message' => 'your password is not correct') 
        )
    );

public function matchPasswords($data) { 
        if ($data['password'] == 
$this->data['User']['password_confirmation']) 
            return true; 
        $this->invalidate('password_confirmation', 'your passwords do not 
match'); 
        return false; 
    } 
     
    public function checkPassword($data) { 
        $user1=new User(); 
        $user=$user1->read(null,  $this->data['User']['id']); 
        
$current_password=AuthComponent::password($data['current_password']); 
        if($current_password==$user['User']['password']){ 
        return true; 
     
        } 
        return false; 
 
    }



On Tuesday, December 25, 2012 4:24:10 PM UTC+2, sweety wrote:
>
>
>

-- 
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP

--- 
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To post to this group, send email to cake-php@googlegroups.com.
To unsubscribe from this group, send email to 
cake-php+unsubscr...@googlegroups.com.
Visit this group at http://groups.google.com/group/cake-php?hl=en.


Reply via email to