I am using the forum module on 3.0.3, and am customizing the memberprofile form. What I want is for a user's password to be unchanged if the password field is left empty. (In the default form, you have to fill out your password twice every time you want to update something in your profile.)
So, I'm using the following code:
...
public function updateForumFields(FieldList $fieldset) {
$member = Member::currentUser();
if($member){
// Make filling out password optional for existing members (
$fieldset->removeByName('Password');
$fieldset->push( $pw = new ConfirmedPasswordField("Password", "Wachtwoord", null, null, $showOnClick = true, "Bevestig wachtwoord") );
}
return $fieldset;
}
This is producing a collapsible ConfirmedPasswordField ('Click link to change password'). But, the password still gets updated (to an empty string) even when a user hasn't edited/updated the password fields.
Should I be checking for an empty password by hand somewhere in doSave()? Right now, the updating routine just consists of:
$form->saveInto($member);
$member->write();