Example #1
0
 /**
  * Helper to remove all users from a course
  * @param bool $keepClasses if true, all classes will be removed too
  * @param array $profilesToDelete array of profile labels
  * @param string $registeredBefore date yyyy-mm-dd hh:mm:ss
  * @param string $registeredAfter date yyyy-mm-dd hh:mm:ss
  * @return bool false if an error occured
  * @throws Exception
  */
 public function removeAllUsers($keepClasses = true, $profilesToDelete = array(), $registeredBefore = null, $registeredAfter = null)
 {
     if ($keepClasses && (!is_null($registeredBefore) || !is_null($registeredAfter))) {
         throw new Exception(get_lang('Cannot combine enrolment date filters and class deletion, please delete the classes independently'));
     }
     $courseUserList = new Claro_CourseUserList($this->course->courseId, $this->database);
     if (empty($profilesToDelete)) {
         $profilesToDelete = array(USER_PROFILE);
     }
     $courseUserIdList = $courseUserList->getFilteredUserIdList($profilesToDelete, $registeredBefore, $registeredAfter);
     $this->removeUserIdListFromCourse($courseUserIdList);
     if (!$keepClasses) {
         $courseClassList = new Claro_CourseClassList($this->course, $this->database);
         foreach ($courseClassList->getClassListIterator() as $class) {
             $classUserList = new Claro_ClassUserList($class, $this->database);
             $this->removeUserIdListFromCourse($classUserList->getClassUserIdList(), $class);
         }
     }
     return !$this->result->hasError();
 }