Exemplo n.º 1
0
 /**
  * Delete user
  *
  * @param integer $user_id
  * @return mixed array on succes, or false on fail
  */
 function delete_user($user_id, $all_matching = 0)
 {
     if (!$this->check_token()) {
         return false;
     }
     if (!vivvo_hooks_manager::call('user_delete', array(&$user_id, &$all_matching))) {
         return vivvo_hooks_manager::get_status();
     }
     $sm = vivvo_lite_site::get_instance();
     if ($sm->user) {
         if ($sm->user->is_admin()) {
             $user_list = new Users_list();
             if ($all_matching == 1) {
                 $user_params = $user_list->get_search_params_from_url($sm);
                 $user_list->search($user_params['search_options'], '', 'ascending', 0, 0, false);
                 if (in_array($sm->user->get_id(), $user_list->get_list_ids())) {
                     $this->set_error_code(2342);
                     // you can't delete user account you are logged in with.
                     return false;
                 }
                 if ($user_list->sql_delete_list($this->_post_master, NULL, true)) {
                     admin_log($sm->user->get_username(), 'Deleted all selected users');
                     return true;
                 } else {
                     $this->set_error_code(2309);
                     return false;
                 }
             } else {
                 if (in_array($sm->user->get_id(), (array) $user_id)) {
                     $this->set_error_code(2342);
                     // you can't delete user account you are logged in with.
                     return false;
                 }
                 if ($user_list->get_users_by_ids($user_id)) {
                     if ($user_list->sql_delete_list($this->_post_master)) {
                         admin_log($sm->user->get_username(), 'Deleted user(s) #' . trim(implode(',', $user_id)));
                         return true;
                     } else {
                         $this->set_error_code(2310);
                         return false;
                     }
                 } else {
                     $this->set_error_code(2311);
                     return false;
                 }
             }
         } else {
             $this->set_error_code(2312);
             return false;
         }
     } else {
         $this->set_error_code(2313);
         return false;
     }
 }