Example #1
0
 /**
  * deletes the user from the database.
  *
  * @return boolean
  */
 public function deleteUser()
 {
     if (!isset($this->user_id) || $this->user_id == 0) {
         $this->errors[] = self::ERROR_USER_NO_USERID;
         return false;
     }
     if (!isset($this->login) || strlen($this->login) == 0) {
         $this->errors[] = self::ERROR_USER_LOGIN_INVALID;
         return false;
     }
     if (isset($this->allowed_status[$this->status]) && $this->allowed_status[$this->status] == self::STATUS_USER_PROTECTED) {
         $this->errors[] = self::ERROR_USER_CANNOT_DELETE_USER . self::STATUS_USER_PROTECTED;
         return false;
     }
     $this->perm->refuseAllUserRights($this->user_id);
     $delete = sprintf("\n            DELETE FROM\n                %sfaquser\n            WHERE\n                user_id = %d", SQLPREFIX, $this->user_id);
     $res = $this->db->query($delete);
     if (!$res) {
         $this->errors[] = self::ERROR_USER_CANNOT_DELETE_USER . 'error(): ' . $this->db->error();
         return false;
     }
     if (!$this->userdata instanceof PMF_User_UserData) {
         $this->userdata = new PMF_User_UserData($this->db);
     }
     $data = $this->userdata->delete($this->getUserId());
     if (!$data) {
         $this->errors[] = self::ERROR_USER_CANNOT_DELETE_USERDATA;
         return false;
     }
     $read_only = 0;
     $auth_count = 0;
     $delete = array();
     foreach ($this->auth_container as $auth) {
         $auth_count++;
         if ($auth->setReadOnly()) {
             $read_only++;
             continue;
         }
         $delete[] = $auth->delete($this->login);
     }
     if ($read_only == $auth_count) {
         $this->errors[] = self::ERROR_USER_NO_AUTH_WRITABLE;
     }
     if (!in_array(true, $delete)) {
         return false;
     }
     return true;
 }