MDL-76611 cohort: prevent duplicate idnumber in inplace editable.

This commit is contained in:
Paul Holden
2023-02-13 10:33:34 +00:00
parent 44d77d0848
commit ebaec57bb2
+5 -3
View File
@@ -63,9 +63,11 @@ class cohortidnumber extends \core\output\inplace_editable {
$cohortcontext = \context::instance_by_id($cohort->contextid);
\external_api::validate_context($cohortcontext);
require_capability('moodle/cohort:manage', $cohortcontext);
$record = (object)array('id' => $cohort->id, 'idnumber' => $newvalue, 'contextid' => $cohort->contextid);
cohort_update_cohort($record);
$cohort->idnumber = $newvalue;
if ($newvalue == '' || !$DB->record_exists_select('cohort', 'idnumber = ? AND id != ?', [$newvalue, $cohort->id])) {
$record = (object) ['id' => $cohort->id, 'idnumber' => $newvalue, 'contextid' => $cohort->contextid];
cohort_update_cohort($record);
$cohort->idnumber = $newvalue;
}
return new static($cohort);
}
}