/**
  * @param $ceiling
  */
 static function deactivate_zombies($ceiling)
 {
     $zombies = self::list_zombies($ceiling);
     $ids = array();
     foreach ($zombies as $zombie) {
         $ids[] = $zombie['user_id'];
     }
     UserManager::deactivate_users($ids);
 }
 function action_deactivate($ids)
 {
     return UserManager::deactivate_users($ids);
 }
 /**
  * Changes the user from one session to another due a reason
  * @params int user_id
  * @params int old session id
  * @params int new session id
  * @params int see SessionManager::get_session_change_user_reasons()
  */
 static function change_user_session($user_id, $old_session_id, $new_session_id, $reason_id)
 {
     if (!empty($user_id) && !empty($old_session_id) && !empty($new_session_id)) {
         $user_id = intval($user_id);
         $old_session_id = intval($old_session_id);
         $new_session_id = intval($new_session_id);
         $reason_id = intval($reason_id);
         $tbl_session_rel_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE);
         $tbl_session_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_USER);
         $tbl_session = Database::get_main_table(TABLE_MAIN_SESSION);
         // Update number of users
         $update_sql = "UPDATE {$tbl_session} SET nbr_users = nbr_users - 1 WHERE id = '{$old_session_id}' ";
         Database::query($update_sql);
         // Get the list of courses related to this session
         $course_list = SessionManager::get_course_list_by_session_id($old_session_id);
         if (!empty($course_list)) {
             foreach ($course_list as $course) {
                 $courseId = $course['id'];
                 // Delete user from course
                 //Database::query("DELETE FROM $tbl_session_rel_course_rel_user WHERE id_session='$session_id' AND course_code='$course_code' AND id_user='******'");
                 //if (Database::affected_rows()) {
                 // Update number of users in this relation
                 $sql = "UPDATE {$tbl_session_rel_course} SET nbr_users = nbr_users - 1 WHERE id_session = '{$old_session_id}' AND c_id='{$courseId}'";
                 Database::query($sql);
                 //}
             }
         }
         //Deal with reasons
         switch ($reason_id) {
             case self::SESSION_CHANGE_USER_REASON_SCHEDULE:
             case self::SESSION_CHANGE_USER_REASON_CLASSROOM:
             case self::SESSION_CHANGE_USER_REASON_LOCATION:
                 //Adding to the new session
                 self::suscribe_users_to_session($new_session_id, array($user_id), null, false);
                 //Setting move_to if session was provided
                 $sql = "UPDATE {$tbl_session_rel_user} SET moved_to = '{$new_session_id}'\n                            WHERE id_session = '{$old_session_id}' AND id_user ='******'";
                 Database::query($sql);
                 break;
             case self::SESSION_CHANGE_USER_REASON_ENROLLMENT_ANNULATION:
                 UserManager::deactivate_users(array($user_id));
                 break;
         }
         $now = api_get_utc_datetime();
         //Setting the moved_status
         $sql = "UPDATE {$tbl_session_rel_user} SET moved_status = {$reason_id}, moved_at = '{$now}'\n                    WHERE id_session = '{$old_session_id}' AND id_user ='******'";
         Database::query($sql);
         return true;
     }
     return;
 }
 /**
  * Generated from @assert (array(-1)) === false.
  *
  * @covers UserManager::deactivate_users
  */
 public function testDeactivate_users2()
 {
     $this->assertSame(false, UserManager::deactivate_users(array(-1)));
 }