From cc77d48e7ccf1747f1d8f31d73a1f855de23c7ab Mon Sep 17 00:00:00 2001 From: meirzamoodle Date: Fri, 22 Nov 2024 17:05:11 +0700 Subject: [PATCH] MDL-83691 core_sms: Avoid saving unnecessary data in the database --- lib/db/upgrade.php | 19 +++++++++++++++++++ sms/configure.php | 3 ++- version.php | 2 +- 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/lib/db/upgrade.php b/lib/db/upgrade.php index f040a03a1d7..3cd32042daf 100644 --- a/lib/db/upgrade.php +++ b/lib/db/upgrade.php @@ -1444,6 +1444,25 @@ function xmldb_main_upgrade($oldversion) { upgrade_main_savepoint(true, 2024100100.02); } + if ($oldversion < 2024100701.01) { + $smsgateways = $DB->get_records('sms_gateways'); + foreach ($smsgateways as $gateway) { + $newconfig = json_decode($gateway->config); + // Continue only if either the `returnurl` OR the `saveandreturn` property exists. + if (property_exists($newconfig, "returnurl") || property_exists($newconfig, "saveandreturn")) { + // Remove unnecessary data in the config. + unset($newconfig->returnurl, $newconfig->saveandreturn); + + // Update the record with the new config. + $gateway->config = json_encode($newconfig); + $DB->update_record('sms_gateways', $gateway); + } + } + + // Main savepoint reached. + upgrade_main_savepoint(true, 2024100701.01); + } + // Automatically generated Moodle v4.5.0 release upgrade line. // Put any upgrade step following this. diff --git a/sms/configure.php b/sms/configure.php index 10110bcba34..ea9d10b806f 100644 --- a/sms/configure.php +++ b/sms/configure.php @@ -96,7 +96,8 @@ if ($data = $mform->get_data()) { $manager = \core\di::get(\core_sms\manager::class); $smsgateway = $data->smsgateway; $gatewayname = $data->name; - unset($data->smsgateway, $data->name, $data->id); + // The $data will go into the database config column. If any data is not needed, unset it here. + unset($data->smsgateway, $data->name, $data->id, $data->saveandreturn, $data->returnurl); if (!empty($id)) { $gatewayinstance = $manager->get_gateway_instances(['id' => $id]); $gatewayinstance = reset($gatewayinstance); diff --git a/version.php b/version.php index bd9cb0304da..824b84e0c3f 100644 --- a/version.php +++ b/version.php @@ -29,7 +29,7 @@ defined('MOODLE_INTERNAL') || die(); -$version = 2024100701.00; // 20241007 = branching date YYYYMMDD - do not modify! +$version = 2024100701.01; // 20241007 = branching date YYYYMMDD - do not modify! // RR = release increments - 00 in DEV branches. // .XX = incremental changes. $release = '4.5.1 (Build: 20241209)'; // Human-friendly version name