/** * @param bool|int $id * @return bool */ public function saveUser($id = false) { if ($this->validate()) { if ($id) { if (!($user = UserRecord::findOne($id))) { return false; } } else { $user = new UserRecord(); } $user->username = $this->username; $user->email = $this->email; if ($this->password) { $user->setPassword($this->password); $user->generateAuthKey(); } $user->status = $this->status; $user->save(false); // save role $auth = \Yii::$app->authManager; if ($id) { $roles = $auth->getRolesByUser($id); if (count($roles)) { $role = array_keys($roles)[0]; $auth->revoke($roles[$role], $id); } } $role = $auth->getRole($this->role); $auth->assign($role, $user->getId()); return true; } return false; }
/** * User's signs up. * * @return User|null the saved model or null if saving fails */ public function register() { if (!$this->validate()) { return false; } $user = new User(); $user->email = $this->email; $user->generateAuthKey(); $user->generatePasswordResetToken(); if (User::removeTokenByEmail($user->email) && $user->save()) { static::getCurrentModule()->sendMessage(self::EVENT_USER_REGISTER, new UserEvent($user)); return $user; } }
/** * Signs user up. * * @return UserRecord|null the saved model or null if saving fails */ public function signup() { if ($this->validate()) { $user = new UserRecord(); $user->username = $this->username; $user->email = $this->email; $user->setPassword($this->password); $user->generateAuthKey(); if ($user->save()) { return $user; } } return null; }