diff options
author | emkael <emkael@tlen.pl> | 2016-03-10 17:14:25 +0100 |
---|---|---|
committer | emkael <emkael@tlen.pl> | 2016-03-10 17:14:25 +0100 |
commit | 48619109291ed90bd0e11f4be27384ca7a95ddf4 (patch) | |
tree | 5ca3d127e03b0dcaf8007257c59332c909523afc /app/php/components | |
parent | bb786c1e19aeaa44b81b47265a284e8737c09e65 (diff) |
* registration form as a component
Diffstat (limited to 'app/php/components')
-rw-r--r-- | app/php/components/RegistrationForm.php | 26 | ||||
-rw-r--r-- | app/php/components/RegistrationForm.tpl | 59 |
2 files changed, 85 insertions, 0 deletions
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" /> |