getUser()->identityClass ? : 'mdm\admin\models\User'; return [ ['username', 'filter', 'filter' => 'trim'], ['username', 'required'], ['username', 'unique', 'targetClass' => $class, 'message' => 'This username has already been taken.'], ['username', 'string', 'min' => 2, 'max' => 255], ['email', 'filter', 'filter' => 'trim'], ['email', 'required'], ['email', 'email'], ['email', 'unique', 'targetClass' => $class, 'message' => 'This email address has already been taken.'], ['password', 'required'], ['password', 'string', 'min' => 6], ['retypePassword', 'required'], ['retypePassword', 'compare', 'compareAttribute' => 'password'], ]; } /** * Signs user up. * * @return User|null the saved model or null if saving fails */ public function signup() { if ($this->validate()) { $class = Yii::$app->getUser()->identityClass ? : 'mdm\admin\models\User'; $user = new $class(); $user->username = $this->username; $user->email = $this->email; $user->status = ArrayHelper::getValue(Yii::$app->params, 'user.defaultStatus', UserStatus::ACTIVE); $user->setPassword($this->password); $user->generateAuthKey(); if ($user->save()) { return $user; } } return null; } }