MDL-61880 core: don't clear issuer fields not present in form data

In cases where we have an id, load the persistent and then set new data
before saving. This ensures we don't delete fields which are missing in
the form data.
This commit is contained in:
Jake Dallimore
2022-11-02 11:12:40 +08:00
parent 565fe67086
commit 3f17ea00e7
+6 -1
View File
@@ -327,7 +327,12 @@ class api {
*/
protected static function create_or_update_issuer($data, bool $create): issuer {
require_capability('moodle/site:config', context_system::instance());
$issuer = new issuer(0, $data);
$issuer = new issuer($data->id ?? 0, $data);
if (!empty($data->id)) {
foreach ($data as $property => $value) {
$issuer->set($property, $value);
}
}
// Will throw exceptions on validation failures.
if ($create) {