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-08-29 07:21:36 +00:00
parent 0628d17bfa
commit a6d8e2b35e
+6 -3
View File
@@ -1401,11 +1401,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).