From 48619109291ed90bd0e11f4be27384ca7a95ddf4 Mon Sep 17 00:00:00 2001 From: emkael <emkael@tlen.pl> Date: Thu, 10 Mar 2016 17:14:25 +0100 Subject: * registration form as a component --- app/php/components/RegistrationForm.php | 26 ++++++++++++++ app/php/components/RegistrationForm.tpl | 59 ++++++++++++++++++++++++++++++++ app/php/pages/Signup.page | 60 +-------------------------------- app/php/pages/Signup.php | 26 -------------- 4 files changed, 86 insertions(+), 85 deletions(-) create mode 100644 app/php/components/RegistrationForm.php create mode 100644 app/php/components/RegistrationForm.tpl delete mode 100644 app/php/pages/Signup.php diff --git a/app/php/components/RegistrationForm.php b/app/php/components/RegistrationForm.php new file mode 100644 index 0000000..71d4df1 --- /dev/null +++ b/app/php/components/RegistrationForm.php @@ -0,0 +1,26 @@ +<?php + +Prado::using('Application.model.User'); + +class RegistrationForm extends TTemplateControl { + + public function checkUsername($sender, $param) { + $param->IsValid = !User::finder()->countByLogin($this->Login->SafeText); + } + + public function registerUser($sender, $param) { + if ($this->Page->IsValid) { + $newUser = new User(); + $newUser->Login = $this->Login->SafeText; + $newUser->Password = DbUser::generatePassword($this->Password->Text); + $newUser->IsAdmin = $this->Admin->Checked; + $newUser->save(); + $this->Response->redirect( + $this->Service->constructUrl(NULL) + ); + } + } + +} + +?> diff --git a/app/php/components/RegistrationForm.tpl b/app/php/components/RegistrationForm.tpl new file mode 100644 index 0000000..295aff1 --- /dev/null +++ b/app/php/components/RegistrationForm.tpl @@ -0,0 +1,59 @@ +Username: +<com:TTextBox ID="Login" + ValidationGroup="SignupGroup" /> +<com:TRequiredFieldValidator + ControlToValidate="Login" + Display="Dynamic" + ErrorMessage="Username cannot be empty" + ValidationGroup="SignupGroup" /> +<com:TRegularExpressionValidator + ControlToValidate="Login" + RegularExpression="[a-zA-Z0-9_]{6,255}" + Display="Dynamic" + ErrorMessage="Username must contain 6-255 characters, all Latin alphanumeric or underscore" + ValidationGroup="SignupGroup" /> +<com:TCustomValidator + ControlToValidate="Login" + OnServerValidate="checkUsername" + Display="Dynamic" + ErrorMessage="Username already exists" + ValidationGroup="SignupGroup" /> +<br /> +Password: +<com:TTextBox ID="Password" + TextMode="Password" + ValidationGroup="SignupGroup" /> +<com:TRequiredFieldValidator + ControlToValidate="Password" + Display="Dynamic" + ErrorMessage="Password cannot be empty" + ValidationGroup="SignupGroup" /> +<br /> +Repeat password: +<com:TTextBox ID="RePassword" + TextMode="Password" + ValidationGroup="SignupGroup" /> +<com:TRequiredFieldValidator + ControlToValidate="RePassword" + Display="Dynamic" + ErrorMessage="Password cannot be empty" + ValidationGroup="SignupGroup" /> +<com:TCompareValidator + ControlToValidate="RePassword" + ControlToCompare="Password" + DataType="String" + Operator="Equal" + Display="Dynamic" + ErrorMessage="Passwords don't match" + ValidationGroup="SignupGroup" /> +<br /> +Admin: +<com:TCheckBox ID="Admin" + ValidationGroup="SignupGroup" /> +<br /> +<com:TButton + Text="Create" + OnCommand="registerUser" + ValidationGroup="SignupGroup" /> +<com:TValidationSummary + ValidationGroup="SignupGroup" /> diff --git a/app/php/pages/Signup.page b/app/php/pages/Signup.page index b8ce6bd..da863d4 100644 --- a/app/php/pages/Signup.page +++ b/app/php/pages/Signup.page @@ -1,61 +1,3 @@ <com:TContent ID="Content"> - Username: - <com:TTextBox ID="Login" - ValidationGroup="SignupGroup" /> - <com:TRequiredFieldValidator - ControlToValidate="Login" - Display="Dynamic" - ErrorMessage="Username cannot be empty" - ValidationGroup="SignupGroup" /> - <com:TRegularExpressionValidator - ControlToValidate="Login" - RegularExpression="[a-zA-Z0-9_]{6,255}" - Display="Dynamic" - ErrorMessage="Username must contain 6-255 characters, all Latin alphanumeric or underscore" - ValidationGroup="SignupGroup" /> - <com:TCustomValidator - ControlToValidate="Login" - OnServerValidate="checkUsername" - Display="Dynamic" - ErrorMessage="Username already exists" - ValidationGroup="SignupGroup" /> - <br /> - Password: - <com:TTextBox ID="Password" - TextMode="Password" - ValidationGroup="SignupGroup" /> - <com:TRequiredFieldValidator - ControlToValidate="Password" - Display="Dynamic" - ErrorMessage="Password cannot be empty" - ValidationGroup="SignupGroup" /> - <br /> - Repeat password: - <com:TTextBox ID="RePassword" - TextMode="Password" - ValidationGroup="SignupGroup" /> - <com:TRequiredFieldValidator - ControlToValidate="RePassword" - Display="Dynamic" - ErrorMessage="Password cannot be empty" - ValidationGroup="SignupGroup" /> - <com:TCompareValidator - ControlToValidate="RePassword" - ControlToCompare="Password" - DataType="String" - Operator="Equal" - Display="Dynamic" - ErrorMessage="Passwords don't match" - ValidationGroup="SignupGroup" /> - <br /> - Admin: - <com:TCheckBox ID="Admin" - ValidationGroup="SignupGroup" /> - <br /> - <com:TButton - Text="Create" - OnCommand="registerUser" - ValidationGroup="SignupGroup" /> - <com:TValidationSummary - ValidationGroup="SignupGroup" /> + <com:RegistrationForm /> </com:TContent> diff --git a/app/php/pages/Signup.php b/app/php/pages/Signup.php deleted file mode 100644 index e989eb6..0000000 --- a/app/php/pages/Signup.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php - -Prado::using('Application.model.User'); - -class Signup extends TPage { - - public function checkUsername($sender, $param) { - $param->IsValid = !User::finder()->countByLogin($this->Login->SafeText); - } - - public function registerUser($sender, $param) { - if ($this->Page->IsValid) { - $newUser = new User(); - $newUser->Login = $this->Login->SafeText; - $newUser->Password = DbUser::generatePassword($this->Password->Text); - $newUser->IsAdmin = $this->Admin->Checked; - $newUser->save(); - $this->Response->redirect( - $this->Service->constructUrl(NULL) - ); - } - } - -} - -?> -- cgit v1.2.3