Ejemplo n.º 1
0
 /**
  * @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;
 }
Ejemplo n.º 2
0
 /**
  * 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;
     }
 }
Ejemplo n.º 3
0
 /**
  * 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;
 }