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:03 +08:00
parent 33b1897e55
commit 177caaa3b5
+4 -1
View File
@@ -327,7 +327,10 @@ 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)) {
$issuer->set_many((array)$data);
}
// Will throw exceptions on validation failures.
if ($create) {