Exemple #1
0
 /**
  * Restore instance and map settings.
  *
  * @param restore_enrolments_structure_step $step
  * @param stdClass $data
  * @param stdClass $course
  * @param int $oldid
  */
 public function restore_instance(restore_enrolments_structure_step $step, stdClass $data, $course, $oldid)
 {
     global $DB;
     // There is only I manual enrol instance allowed per course.
     if ($instances = $DB->get_records('enrol', array('courseid' => $data->courseid, 'enrol' => 'manual'), 'id')) {
         $instance = reset($instances);
         $instanceid = $instance->id;
     } else {
         $instanceid = $this->add_instance($course, (array) $data);
     }
     $step->set_mapping('enrol', $oldid, $instanceid);
 }
Exemple #2
0
 /**
  * Restore instance and map settings.
  *
  * @param restore_enrolments_structure_step $step
  * @param stdClass $data
  * @param stdClass $course
  * @param int $oldid
  */
 public function restore_instance(restore_enrolments_structure_step $step, stdClass $data, $course, $oldid)
 {
     global $DB;
     if ($step->get_task()->get_target() == backup::TARGET_NEW_COURSE) {
         $merge = false;
     } else {
         $merge = array('courseid' => $data->courseid, 'enrol' => $this->get_name(), 'roleid' => $data->roleid);
     }
     if ($merge and $instances = $DB->get_records('enrol', $merge, 'id')) {
         $instance = reset($instances);
         $instanceid = $instance->id;
     } else {
         if (!empty($data->customint5)) {
             if ($step->get_task()->is_samesite()) {
                 // Keep cohort restriction unchanged - we are on the same site.
             } else {
                 // Use some id that can not exist in order to prevent self enrolment,
                 // because we do not know what cohort it is in this site.
                 $data->customint5 = -1;
             }
         }
         $instanceid = $this->add_instance($course, (array) $data);
     }
     $step->set_mapping('enrol', $oldid, $instanceid);
 }
Exemple #3
0
 /**
  * Restore instance and map settings.
  *
  * @param restore_enrolments_structure_step $step
  * @param stdClass $data
  * @param stdClass $course
  * @param int $oldid
  */
 public function restore_instance(restore_enrolments_structure_step $step, stdClass $data, $course, $oldid)
 {
     global $DB;
     if ($instance = $DB->get_record('enrol', array('courseid' => $course->id, 'enrol' => $this->get_name()))) {
         $instanceid = $instance->id;
     } else {
         $instanceid = $this->add_instance($course);
     }
     $step->set_mapping('enrol', $oldid, $instanceid);
 }
Exemple #4
0
 /**
  * Restore instance and map settings.
  *
  * @param restore_enrolments_structure_step $step
  * @param stdClass $data
  * @param stdClass $course
  * @param int $oldid
  */
 public function restore_instance(restore_enrolments_structure_step $step, stdClass $data, $course, $oldid)
 {
     global $DB, $CFG;
     if (!$step->get_task()->is_samesite()) {
         // No cohort restore from other sites.
         $step->set_mapping('enrol', $oldid, 0);
         return;
     }
     if (!empty($data->customint2)) {
         $data->customint2 = $step->get_mappingid('group', $data->customint2);
     }
     if ($data->roleid and $DB->record_exists('cohort', array('id' => $data->customint1))) {
         $instance = $DB->get_record('enrol', array('roleid' => $data->roleid, 'customint1' => $data->customint1, 'courseid' => $course->id, 'enrol' => $this->get_name()));
         if ($instance) {
             $instanceid = $instance->id;
         } else {
             $instanceid = $this->add_instance($course, (array) $data);
         }
         $step->set_mapping('enrol', $oldid, $instanceid);
         require_once "{$CFG->dirroot}/enrol/cohort/locallib.php";
         $trace = new null_progress_trace();
         enrol_cohort_sync($trace, $course->id);
         $trace->finished();
     } else {
         if ($this->get_config('unenrolaction') == ENROL_EXT_REMOVED_SUSPENDNOROLES) {
             $data->customint1 = 0;
             $instance = $DB->get_record('enrol', array('roleid' => $data->roleid, 'customint1' => $data->customint1, 'courseid' => $course->id, 'enrol' => $this->get_name()));
             if ($instance) {
                 $instanceid = $instance->id;
             } else {
                 $data->status = ENROL_INSTANCE_DISABLED;
                 $instanceid = $this->add_instance($course, (array) $data);
             }
             $step->set_mapping('enrol', $oldid, $instanceid);
             require_once "{$CFG->dirroot}/enrol/cohort/locallib.php";
             $trace = new null_progress_trace();
             enrol_cohort_sync($trace, $course->id);
             $trace->finished();
         } else {
             $step->set_mapping('enrol', $oldid, 0);
         }
     }
 }
 /**
  * Restore instance and map settings.
  *
  * @param restore_enrolments_structure_step $step
  * @param stdClass $data
  * @param stdClass $course
  * @param int $oldid
  */
 public function restore_instance(restore_enrolments_structure_step $step, stdClass $data, $course, $oldid)
 {
     global $DB;
     if ($step->get_task()->get_target() == backup::TARGET_NEW_COURSE) {
         $merge = false;
     } else {
         $merge = array('courseid' => $data->courseid, 'enrol' => $this->get_name(), 'roleid' => $data->roleid, 'cost' => $data->cost, 'currency' => $data->currency);
     }
     if ($merge and $instances = $DB->get_records('enrol', $merge, 'id')) {
         $instance = reset($instances);
         $instanceid = $instance->id;
     } else {
         $instanceid = $this->add_instance($course, (array) $data);
     }
     $step->set_mapping('enrol', $oldid, $instanceid);
 }
Exemple #6
0
 /**
  * Restore instance and map settings.
  *
  * @param restore_enrolments_structure_step $step
  * @param stdClass $data
  * @param stdClass $course
  * @param int $oldid
  */
 public function restore_instance(restore_enrolments_structure_step $step, stdClass $data, $course, $oldid)
 {
     // Do not call this from overridden methods, restore and set new id there.
     $step->set_mapping('enrol', $oldid, 0);
 }
Exemple #7
0
 /**
  * Restore instance and map settings.
  *
  * @param restore_enrolments_structure_step $step
  * @param stdClass $data
  * @param stdClass $course
  * @param int $oldid
  */
 public function restore_instance(restore_enrolments_structure_step $step, stdClass $data, $course, $oldid)
 {
     global $DB;
     if (!$DB->record_exists('enrol', array('courseid' => $data->courseid, 'enrol' => $this->get_name()))) {
         $this->add_instance($course, (array) $data);
     }
     // No need to set mapping, we do not restore users or roles here.
     $step->set_mapping('enrol', $oldid, 0);
 }
Exemple #8
0
 /**
  * Restore instance and map settings.
  *
  * @param restore_enrolments_structure_step $step
  * @param stdClass $data
  * @param stdClass $course
  * @param int $oldid
  */
 public function restore_instance(restore_enrolments_structure_step $step, stdClass $data, $course, $oldid)
 {
     global $DB, $CFG;
     if (!$step->get_task()->is_samesite()) {
         // No meta restore from other sites.
         $step->set_mapping('enrol', $oldid, 0);
         return;
     }
     if (!empty($data->customint2)) {
         $data->customint2 = $step->get_mappingid('group', $data->customint2);
     }
     if ($DB->record_exists('course', array('id' => $data->customint1))) {
         $instance = $DB->get_record('enrol', array('roleid' => $data->roleid, 'customint1' => $data->customint1, 'courseid' => $course->id, 'enrol' => $this->get_name()));
         if ($instance) {
             $instanceid = $instance->id;
         } else {
             $instanceid = $this->add_instance($course, (array) $data);
         }
         $step->set_mapping('enrol', $oldid, $instanceid);
         require_once "{$CFG->dirroot}/enrol/meta/locallib.php";
         enrol_meta_sync($data->customint1);
     } else {
         $step->set_mapping('enrol', $oldid, 0);
     }
 }
Exemple #9
0
 /**
  * Restore instance and map settings.
  *
  * @param restore_enrolments_structure_step $step
  * @param stdClass $data
  * @param stdClass $course
  * @param int $oldid
  */
 public function restore_instance(restore_enrolments_structure_step $step, stdClass $data, $course, $oldid)
 {
     // We want to call the parent because we do not want to add an enrol_lti_tools row
     // as that is done as part of the restore process.
     $instanceid = parent::add_instance($course, (array) $data);
     $step->set_mapping('enrol', $oldid, $instanceid);
 }