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:
@@ -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).
|
||||
|
||||
Reference in New Issue
Block a user