Monday, May 28, 2012

Re: How I can edit a user without changing the password?

I am sure there are a lot better solutions than this, and more brilliant coders can help you out, but at least this is what I did.

I used password and password2 (or reEnterPassword however your call it) on edit.ctp
and use two different rules from the User model

on Model, you will need public $validation as your default rule,
then create public $validationSets (you need a plugin for this.  I think it is multivalidate)
and you would create validation something like

public $validationSets = array(
'edit' => array(
YOU DO ADD PASSWORD SECTION HERE
},
'add' => array(
whatever rule you want
},
'editWithOutPassword' => array(
Rules WITHOUT PASSWORD HERE
)
);


Then on UsersController.php, you would call it something like

public function edit($id = null) {
if edit with password {
$this->User->setValidation('edit');
and do whatever your code here
} else {
$this->User->setValidation('editWithOutPassword');

And here, you will have to compile your own list of forms you need to save without password.
something like
$fieldsToUpdate = array(your field list here);
$formValues = array(your form values here);
$this->User->read($fieldsToUpdate, $id);
$this->User->set($formValues);

and rest of your save code here
if($this->User->save()) {
User has been saved
} else {
User could not be saved.
}
}
}

On Mon, May 28, 2012 at 12:20 PM, lsri8088 <lsri8088@gmail.com> wrote:
Hello,

I'm using cake 2.1 with AuthComponent and standard data modelusers.

How I can edit a user without changing the password?

For example, add a check "I want to change the password." If thischeck is true then I make a hash of the password and keep it inserted.Otherwise I do not modify the password field.
How do I add this check and then check it in my beforeSave() function?

Another option I can think of is to leave the password field empty when I go to edit a user (unset ($ this-> request-> data ['User'] ['password']) ;)and then check if the password is empty or not. But .... when I insert a new user the password field should be mandatory ....

Do you have any ideas?

thanks

--
Our newest site for the community: CakePHP Video Tutorials http://tv.cakephp.org
Check out the new CakePHP Questions site http://ask.cakephp.org and help others with their CakePHP related questions.
 
 
To unsubscribe from this group, send email to
cake-php+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/cake-php



--
Richard Joo

--
Our newest site for the community: CakePHP Video Tutorials http://tv.cakephp.org
Check out the new CakePHP Questions site http://ask.cakephp.org and help others with their CakePHP related questions.
 
 
To unsubscribe from this group, send email to
cake-php+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/cake-php

No comments: