MDL-37312 backup: Keep course idnumber on same site course restore

When the course idnumber is set during a same site course restore,
retain the course idnumber if there are no duplicates.
This commit is contained in:
zbdd
2014-09-01 10:44:50 +08:00
committed by Damyon Wiese
parent e6f1c141bf
commit 0c18577317
+6 -3
View File
@@ -1472,11 +1472,14 @@ class restore_course_structure_step extends restore_structure_step {
$data->fullname = $fullname;
$data->shortname= $shortname;
// Only allow the idnumber to be set if the user has permission and the idnumber is not already in use by
// another course on this site.
$context = context::instance_by_id($this->task->get_contextid());
if (has_capability('moodle/course:changeidnumber', $context, $this->task->get_userid())) {
$data->idnumber = '';
if (!empty($data->idnumber) && has_capability('moodle/course:changeidnumber', $context, $this->task->get_userid()) &&
$this->task->is_samesite() && !$DB->record_exists('course', array('idnumber' => $data->idnumber))) {
// Do not reset idnumber.
} else {
unset($data->idnumber);
$data->idnumber = '';
}
// Any empty value for course->hiddensections will lead to 0 (default, show collapsed).