diff options
-rw-r--r-- | app/php/components/PasswordChange.php | 34 | ||||
-rw-r--r-- | app/php/components/PasswordChange.tpl | 52 | ||||
-rw-r--r-- | app/php/pages/Profile.page | 55 | ||||
-rw-r--r-- | app/php/pages/Profile.php | 24 |
4 files changed, 89 insertions, 76 deletions
diff --git a/app/php/components/PasswordChange.php b/app/php/components/PasswordChange.php new file mode 100644 index 0000000..8aedcab --- /dev/null +++ b/app/php/components/PasswordChange.php @@ -0,0 +1,34 @@ +<?php + +Prado::using('Application.user.DbUser'); + +class PasswordChange extends TTemplateControl { + + public function getUserToChange() { + return $this->getControlState('user'); + } + + public function setUserToChange(DbUser $user) { + $this->setControlState('user', $user); + } + + public function checkPassword($sender, $param) { + $param->IsValid = DbUser::verifyPassword( + $this->Password->Text, $this->UserToChange->DbRecord->Password + ); + } + + public function changePassword($sender, $param) { + $this->SuccessMessage->Visible = FALSE; + if ($this->Page->IsValid) { + $this->UserToChange->DbRecord->Password = DbUser::generatePassword( + $this->NewPassword->Text + ); + $this->UserToChange->DbRecord->save(); + $this->SuccessMessage->Visible = TRUE; + } + } + +} + +?> diff --git a/app/php/components/PasswordChange.tpl b/app/php/components/PasswordChange.tpl new file mode 100644 index 0000000..c1eb793 --- /dev/null +++ b/app/php/components/PasswordChange.tpl @@ -0,0 +1,52 @@ +Change password<br /> +Current password: +<com:TTextBox ID="Password" + TextMode="Password" + ValidationGroup="ChangePasswordGroup" /> +<com:TRequiredFieldValidator + ControlToValidate="Password" + Display="Dynamic" + ErrorMessage="Current password cannot be empty" + ValidationGroup="ChangePasswordGroup" /> +<com:TCustomValidator + ControlToValidate="Password" + OnServerValidate="checkPassword" + Display="Dynamic" + ErrorMessage="Password is incorrect" + ValidationGroup="ChangePasswordGroup" /> +<br /> +New password: +<com:TTextBox ID="NewPassword" + TextMode="Password" + ValidationGroup="ChangePasswordGroup" /> +<com:TRequiredFieldValidator + ControlToValidate="NewPassword" + Display="Dynamic" + ErrorMessage="New password cannot be empty" + ValidationGroup="ChangePasswordGroup" /> +<br /> +Repeat password: +<com:TTextBox ID="ReNewPassword" + TextMode="Password" + ValidationGroup="ChangePasswordGroup" /> +<com:TRequiredFieldValidator + ControlToValidate="ReNewPassword" + Display="Dynamic" + ErrorMessage="New password cannot be empty" + ValidationGroup="ChangePasswordGroup" /> +<com:TCompareValidator + ControlToValidate="ReNewPassword" + ControlToCompare="NewPassword" + DataType="String" + Operator="Equal" + Display="Dynamic" + ErrorMessage="Passwords don't match" + ValidationGroup="ChangePasswordGroup" /> +<br /> +<com:TButton + Text="Change password" + OnCommand="changePassword" + ValidationGroup="ChangePasswordGroup" /> +<com:TLabel ID="SuccessMessage" + Text="Your password has been changed" + Visible="false" /> diff --git a/app/php/pages/Profile.page b/app/php/pages/Profile.page index 71ed112..b66a50b 100644 --- a/app/php/pages/Profile.page +++ b/app/php/pages/Profile.page @@ -1,54 +1,5 @@ <com:TContent ID="Content"> - Change password<br /> - Current password: - <com:TTextBox ID="Password" - TextMode="Password" - ValidationGroup="ChangePasswordGroup" /> - <com:TRequiredFieldValidator - ControlToValidate="Password" - Display="Dynamic" - ErrorMessage="Current password cannot be empty" - ValidationGroup="ChangePasswordGroup" /> - <com:TCustomValidator - ControlToValidate="Password" - OnServerValidate="checkPassword" - Display="Dynamic" - ErrorMessage="Password is incorrect" - ValidationGroup="ChangePasswordGroup" /> - <br /> - New password: - <com:TTextBox ID="NewPassword" - TextMode="Password" - ValidationGroup="ChangePasswordGroup" /> - <com:TRequiredFieldValidator - ControlToValidate="NewPassword" - Display="Dynamic" - ErrorMessage="New password cannot be empty" - ValidationGroup="ChangePasswordGroup" /> - <br /> - Repeat password: - <com:TTextBox ID="ReNewPassword" - TextMode="Password" - ValidationGroup="ChangePasswordGroup" /> - <com:TRequiredFieldValidator - ControlToValidate="ReNewPassword" - Display="Dynamic" - ErrorMessage="New password cannot be empty" - ValidationGroup="ChangePasswordGroup" /> - <com:TCompareValidator - ControlToValidate="ReNewPassword" - ControlToCompare="NewPassword" - DataType="String" - Operator="Equal" - Display="Dynamic" - ErrorMessage="Passwords don't match" - ValidationGroup="ChangePasswordGroup" /> - <br /> - <com:TButton - Text="Change password" - OnCommand="changePassword" - ValidationGroup="ChangePasswordGroup" /> - <com:TLabel ID="SuccessMessage" - Text="Your password has been changed" - Visible="false" /> + <com:PasswordChange> + <prop:UserToChange><%= $this->User %></prop:UserToChange> + </com:PasswordChange> </com:TContent> diff --git a/app/php/pages/Profile.php b/app/php/pages/Profile.php deleted file mode 100644 index 6df87bc..0000000 --- a/app/php/pages/Profile.php +++ /dev/null @@ -1,24 +0,0 @@ -<?php - -class Profile extends TPage { - - public function checkPassword($sender, $param) { - $param->IsValid = DbUser::verifyPassword( - $this->Password->Text, $this->User->DbRecord->Password - ); - } - - public function changePassword($sender, $param) { - $this->SuccessMessage->Visible = FALSE; - if ($this->Page->IsValid) { - $this->User->DbRecord->Password = DbUser::generatePassword( - $this->NewPassword->Text - ); - $this->User->DbRecord->save(); - $this->SuccessMessage->Visible = TRUE; - } - } - -} - -?> |