Esempio n. 1
3
 /**
  * InstallForm model validation rules
  *
  * @return array
  */
 public function rules()
 {
     $config = $this->_module->registrationSettings;
     $rules = [[['access_code', 'username', 'password', 'email', 'password_confirm', 'action'], 'safe'], ['access_code', 'required', 'on' => [Module::UI_ACCESS]], ['access_code', 'checkAccess', 'on' => [Module::UI_ACCESS]], [['username', 'email'], 'filter', 'filter' => 'trim', 'on' => [Module::UI_INSTALL]], ['email', 'email', 'on' => [Module::UI_INSTALL]], [['username', 'password', 'password_confirm', 'email'], 'required', 'on' => [Module::UI_INSTALL]], ['username', 'match', 'pattern' => $config['userNamePattern'], 'message' => $config['userNameValidMsg'], 'on' => [Module::UI_INSTALL]], ['username', 'string'] + $config['userNameRules'] + ['on' => Module::UI_INSTALL], ['password_confirm', 'compare', 'compareAttribute' => 'password', 'on' => [Module::UI_INSTALL]], [['password'], StrengthValidator::className()] + $this->_module->passwordSettings['strengthRules'] + ['on' => [Module::UI_INSTALL]]];
     if (in_array(Module::UI_INSTALL, $this->_module->passwordSettings['validateStrength'])) {
         $rules[] = [['password'], StrengthValidator::className()] + $this->_module->passwordSettings['strengthRules'] + ['on' => [Module::UI_INSTALL]];
     }
     return $rules;
 }
 /**
  * Set password rule based on our setting value ( Force Strong Password ).
  *
  * @return array Password strength rule
  */
 private function passwordStrengthRule()
 {
     // get setting value for 'Force Strong Password'
     $fsp = Yii::$app->params['fsp'];
     // password strength rule is determined by StrengthValidator
     // presets are located in: vendor/kartik-v/yii2-password/presets.php
     $strong = [['password'], StrengthValidator::className(), 'preset' => 'normal'];
     // use normal yii rule
     $normal = ['password', 'string', 'min' => 6];
     // if 'Force Strong Password' is set to 'true' use $strong rule, else use $normal rule
     return $fsp ? $strong : $normal;
 }
 /**
  * Set password rule based on our setting value (Force Strong Password).
  *
  * @return array Password strength rule
  */
 private function passwordStrengthRule()
 {
     // get setting value for 'Force Strong Password'
     $fsp = Yii::$app->params['fsp'];
     // password strength rule is determined by StrengthValidator
     // presets are located in: vendor/kartik-v/yii2-password/presets.php
     // NOTE: you should use custom rule because pwd reset doesn't require username and email validation
     $strong = [['password'], StrengthValidator::className(), 'min' => 8, 'lower' => 2, 'upper' => 2, 'digit' => 2, 'special' => 0, 'hasUser' => false, 'hasEmail' => false];
     // use normal yii rule
     $normal = ['password', 'string', 'min' => 6];
     // if 'Force Strong Password' is set to 'true' use $strong rule, else use $normal rule
     return $fsp ? $strong : $normal;
 }
Esempio n. 4
0
 /**
  * @inheritdoc
  */
 public function rules()
 {
     $m = $this->_module;
     $config = $m->registrationSettings;
     $rules = [['username', 'match', 'pattern' => $config['userNamePattern'], 'message' => $config['userNameValidMsg']], ['username', 'string'] + $config['userNameRules'], ['username', 'filter', 'filter' => 'trim'], ['username', 'required'], ['username', 'unique', 'targetClass' => self::classname(), 'message' => Yii::t('user', 'This username has already been taken')], ['email', 'filter', 'filter' => 'trim'], ['email', 'required'], ['email', 'email'], ['email', 'unique', 'targetClass' => self::classname(), 'message' => Yii::t('user', 'This email address is already registered')], ['password', 'required'], ['password', 'isValidPassword', 'on' => [Module::SCN_CHANGEPASS, Module::SCN_NEWEMAIL]], [['password_new', 'password_confirm'], 'required', 'on' => [Module::SCN_RESET, Module::SCN_CHANGEPASS]], ['password_confirm', 'compare', 'compareAttribute' => 'password_new', 'on' => [Module::SCN_RESET, Module::SCN_CHANGEPASS]], ['password_new', 'compare', 'compareAttribute' => 'password', 'operator' => '!=', 'message' => Yii::t('user', 'Your new password cannot be same as your existing password')]];
     if ($m->registrationSettings['captcha'] !== false) {
         $config = ArrayHelper::getValue($m->registrationSettings['captcha'], 'validator', []);
         $rules[] = ['captcha', 'captcha'] + $config + ['on' => Module::SCN_REGISTER];
     }
     $strengthRules = $m->passwordSettings['strengthRules'];
     if ($scenarios = $m->passwordSettings['validateStrengthCurr']) {
         $rules[] = ['password', StrengthValidator::className()] + $strengthRules + ['on' => $scenarios];
     }
     if ($scenarios = $m->passwordSettings['validateStrengthNew']) {
         $rules[] = ['password_new', StrengthValidator::className()] + $strengthRules + ['on' => $scenarios];
     }
     return $rules;
 }
Esempio n. 5
0
 /**
  * User model validation rules
  *
  * @return array
  */
 public function rules()
 {
     $config = $this->_module->registrationSettings;
     $rules = [['username', 'match', 'pattern' => $config['userNamePattern'], 'message' => $config['userNameValidMsg']], ['username', 'string'] + $config['userNameRules'], ['username', 'filter', 'filter' => 'trim'], ['username', 'required'], ['username', 'unique'], ['email', 'filter', 'filter' => 'trim'], ['email', 'required'], ['email', 'email'], ['email', 'unique'], [['status'], 'default', 'value' => self::STATUS_PENDING], ['status', 'in', 'range' => array_keys($this->_statuses)], [['password_raw'], 'required', 'on' => [Module::UI_REGISTER, Module::UI_RESET]], [['password_new', 'password_confirm'], 'required', 'on' => [Module::UI_RESET]], ['password_new', 'compare', 'compareAttribute' => 'password_confirm', 'on' => [Module::UI_RESET]]];
     $strengthRules = $this->_module->passwordSettings['strengthRules'];
     $validateStrength = $this->_module->passwordSettings['validateStrength'];
     if (in_array(Module::UI_REGISTER, $validateStrength)) {
         $rules[] = [['password_raw'], StrengthValidator::className()] + $strengthRules + ['on' => [Module::UI_REGISTER]];
     }
     if (in_array(Module::UI_RESET, $validateStrength)) {
         $rules[] = [['password_new', 'password_confirm'], StrengthValidator::className()] + $strengthRules + ['on' => [Module::UI_RESET]];
     }
     return $rules;
 }
Esempio n. 6
0
 /**
  * @inheritdoc
  */
 public function rules()
 {
     return [[['username', 'email', 'status', 'password', 'repeatPassword'], 'required'], ['username', 'unique'], ['status', 'default', 'value' => self::STATUS_ACTIVE], ['status', 'in', 'range' => [self::STATUS_ACTIVE, self::STATUS_DELETED]], ['email', 'email'], ['repeatPassword', 'compare', 'compareAttribute' => 'password'], [['password'], StrengthValidator::className(), 'preset' => 'normal', 'userAttribute' => 'username']];
 }