From: Andrey Kutejko Date: Mon, 6 Apr 2015 17:50:16 +0000 (+0300) Subject: auth admin: validate username X-Git-Tag: 0.6~52 X-Git-Url: https://git.andy128k.dev/?a=commitdiff_plain;h=d9fd270d698996d36749cfb0b66a259a68d1f92e;p=ipf.git auth admin: validate username --- diff --git a/ipf/auth/admin.php b/ipf/auth/admin.php index 380dc46..e7fe4e2 100644 --- a/ipf/auth/admin.php +++ b/ipf/auth/admin.php @@ -32,11 +32,12 @@ class UserForm extends \IPF_ObjectForm { $this->isAdd = $extra['is_add']; - $this->fields['username'] = new \IPF_Form_Field_Varchar(array( + $this->fields['username'] = new \IPF_Form_Field_Regex(array( 'required' => true, 'max_length' => 32, 'label' => __('Username'), 'help_text' => __('Required. 32 characters or less. Alphanumeric characters only (letters, digits and underscores).'), + 'regex' => '/^[a-zA-Z0-9_]{1,32}$/', )); $this->fields['password1'] = new \IPF_Form_Field_Varchar(array( diff --git a/ipf/form/field/regex.php b/ipf/form/field/regex.php new file mode 100644 index 0000000..a530dff --- /dev/null +++ b/ipf/form/field/regex.php @@ -0,0 +1,24 @@ +empty_values)) { + return ''; + } + if (!preg_match($this->regex, $value)) { + $error_message = $this->error_message; + if (!$error_message) + $error_message = __('Invalid value'); + throw new IPF_Exception_Form($error_message); + } + return $value; + } +} +