diff options
Diffstat (limited to 'app/php')
-rw-r--r-- | app/php/components/HeaderMenu.tpl | 4 | ||||
-rw-r--r-- | app/php/pages/Profile.page | 53 | ||||
-rw-r--r-- | app/php/pages/Profile.php | 17 |
3 files changed, 73 insertions, 1 deletions
diff --git a/app/php/components/HeaderMenu.tpl b/app/php/components/HeaderMenu.tpl index eceea1b..ff1d417 100644 --- a/app/php/components/HeaderMenu.tpl +++ b/app/php/components/HeaderMenu.tpl @@ -3,6 +3,10 @@ <prop:NavigateUrl><%= $this->Service->constructUrl('Login') %></prop:NavigateUrl> <prop:Visible><%= $this->User->IsGuest %></prop:Visible> </com:THyperLink> + <com:THyperLink Text="Profile"> + <prop:NavigateUrl><%= $this->Service->constructUrl('Profile') %></prop:NavigateUrl> + <prop:Visible><%= !$this->User->IsGuest %></prop:Visible> + </com:THyperLink> <com:TActiveLinkButton OnCommand="logoutUser"> <prop:Text>Logout (<%= $this->User->Name %>)</prop:Text> <prop:Visible><%= !$this->User->IsGuest %></prop:Visible> diff --git a/app/php/pages/Profile.page b/app/php/pages/Profile.page index b5dcf37..71ed112 100644 --- a/app/php/pages/Profile.page +++ b/app/php/pages/Profile.page @@ -1,3 +1,54 @@ <com:TContent ID="Content"> - Profile + 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:TContent> diff --git a/app/php/pages/Profile.php b/app/php/pages/Profile.php index fb2c89f..6df87bc 100644 --- a/app/php/pages/Profile.php +++ b/app/php/pages/Profile.php @@ -2,6 +2,23 @@ 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; + } + } + } ?> |