/** * 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; }
/** * @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; }
/** * 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; }
/** * @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']]; }