From 2f351c5a8e2233b2618c30a6fd42fa7f4dc2959c Mon Sep 17 00:00:00 2001 From: Mark Johnson Date: Fri, 26 Jan 2024 16:43:39 +0000 Subject: [PATCH] MDL-80736 libraries: Move AWS helper code from factor_sms to core\aws --- .../factor/sms/classes/local/smsgateway/aws_sns.php | 7 ++----- .../classes/aws}/admin_settings_aws_region.php | 12 +++++++----- .../classes/local => lib/classes/aws}/aws_helper.php | 4 ++-- .../local => lib/classes/aws}/client_factory.php | 4 ++-- .../templates/aws}/setting_aws_region.mustache | 2 +- .../tests/aws}/admin_settings_aws_region_test.php | 8 ++++---- .../sms/tests => lib/tests/aws}/aws_helper_test.php | 12 +++++------- 7 files changed, 23 insertions(+), 26 deletions(-) rename {admin/tool/mfa/factor/sms/classes => lib/classes/aws}/admin_settings_aws_region.php (85%) rename {admin/tool/mfa/factor/sms/classes/local => lib/classes/aws}/aws_helper.php (98%) rename {admin/tool/mfa/factor/sms/classes/local => lib/classes/aws}/client_factory.php (97%) rename {admin/tool/mfa/factor/sms/templates => lib/templates/aws}/setting_aws_region.mustache (97%) rename {admin/tool/mfa/factor/sms/tests => lib/tests/aws}/admin_settings_aws_region_test.php (95%) rename {admin/tool/mfa/factor/sms/tests => lib/tests/aws}/aws_helper_test.php (90%) diff --git a/admin/tool/mfa/factor/sms/classes/local/smsgateway/aws_sns.php b/admin/tool/mfa/factor/sms/classes/local/smsgateway/aws_sns.php index b86cbe2138d..a1824375d62 100644 --- a/admin/tool/mfa/factor/sms/classes/local/smsgateway/aws_sns.php +++ b/admin/tool/mfa/factor/sms/classes/local/smsgateway/aws_sns.php @@ -16,9 +16,9 @@ namespace factor_sms\local\smsgateway; -use factor_sms\admin_settings_aws_region; +use core\aws\admin_settings_aws_region; +use core\aws\aws_helper; use factor_sms\event\sms_sent; -use factor_sms\local\aws_helper; /** * AWS SNS SMS Gateway class @@ -122,9 +122,6 @@ class aws_sns implements gateway_interface { * @return void */ public static function add_settings(\admin_settingpage $settings): void { - global $CFG; - - require_once($CFG->dirroot . '/admin/tool/mfa/factor/sms/classes/admin_settings_aws_region.php'); $settings->add(new \admin_setting_configcheckbox('factor_sms/usecredchain', get_string('settings:aws:usecredchain', 'factor_sms'), '', 0)); diff --git a/admin/tool/mfa/factor/sms/classes/admin_settings_aws_region.php b/lib/classes/aws/admin_settings_aws_region.php similarity index 85% rename from admin/tool/mfa/factor/sms/classes/admin_settings_aws_region.php rename to lib/classes/aws/admin_settings_aws_region.php index 71f9c81ed7b..4ff65cb8af8 100644 --- a/admin/tool/mfa/factor/sms/classes/admin_settings_aws_region.php +++ b/lib/classes/aws/admin_settings_aws_region.php @@ -17,13 +17,13 @@ /** * Admin setting for AWS regions. * - * @package factor_sms + * @package core * @author Dmitrii Metelkin * @copyright 2020 Catalyst IT * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ - namespace factor_sms; +namespace core\aws; defined('MOODLE_INTERNAL') || die(); @@ -32,7 +32,7 @@ require_once($CFG->dirroot . '/lib/adminlib.php'); /** * Admin setting for a list of AWS regions. * - * @package factor_sms + * @package core * @copyright 2020 Catalyst IT * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ @@ -50,7 +50,9 @@ class admin_settings_aws_region extends \admin_setting_configtext { $default = $this->get_defaultsetting(); $options = []; - $all = require_once($CFG->dirroot . '/lib/aws-sdk/src/data/endpoints.json.php'); + // We do require() not require_once() here, as the file returns a value and we may need to get + // this value more than once. + $all = require($CFG->dirroot . '/lib/aws-sdk/src/data/endpoints.json.php'); $ends = $all['partitions'][0]['regions']; if ($ends) { foreach ($ends as $key => $value) { @@ -69,7 +71,7 @@ class admin_settings_aws_region extends \admin_setting_configtext { 'size' => $this->size, 'options' => $options, ]; - $element = $OUTPUT->render_from_template('factor_sms/setting_aws_region', $context); + $element = $OUTPUT->render_from_template('core/aws/setting_aws_region', $context); return format_admin_setting($this, $this->visiblename, $element, $this->description, true, '', $default, $query); } } diff --git a/admin/tool/mfa/factor/sms/classes/local/aws_helper.php b/lib/classes/aws/aws_helper.php similarity index 98% rename from admin/tool/mfa/factor/sms/classes/local/aws_helper.php rename to lib/classes/aws/aws_helper.php index 299edc234d1..a9b1a5e317d 100644 --- a/admin/tool/mfa/factor/sms/classes/local/aws_helper.php +++ b/lib/classes/aws/aws_helper.php @@ -17,13 +17,13 @@ /** * AWS helper class. Contains useful functions when interacting with the SDK. * - * @package factor_sms + * @package core * @author Peter Burnett * @copyright 2020 Catalyst IT * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -namespace factor_sms\local; +namespace core\aws; use Aws\CommandInterface; use Aws\AwsClient; diff --git a/admin/tool/mfa/factor/sms/classes/local/client_factory.php b/lib/classes/aws/client_factory.php similarity index 97% rename from admin/tool/mfa/factor/sms/classes/local/client_factory.php rename to lib/classes/aws/client_factory.php index a8be7b5b355..2b46a0dbd1f 100644 --- a/admin/tool/mfa/factor/sms/classes/local/client_factory.php +++ b/lib/classes/aws/client_factory.php @@ -17,13 +17,13 @@ /** * AWS Client factory. Retrieves a client with moodle specific HTTP configuration. * - * @package factor_sms + * @package core * @author Peter Burnett * @copyright 2022 Catalyst IT * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -namespace factor_sms\local; +namespace core\aws; use Aws\AwsClient; /** diff --git a/admin/tool/mfa/factor/sms/templates/setting_aws_region.mustache b/lib/templates/aws/setting_aws_region.mustache similarity index 97% rename from admin/tool/mfa/factor/sms/templates/setting_aws_region.mustache rename to lib/templates/aws/setting_aws_region.mustache index 8a21034fec8..6135a0e04b3 100644 --- a/admin/tool/mfa/factor/sms/templates/setting_aws_region.mustache +++ b/lib/templates/aws/setting_aws_region.mustache @@ -15,7 +15,7 @@ along with Moodle. If not, see . }} {{! - @template factor_sms/setting_aws_region + @template core/aws/setting_aws_region Admin aws region setting template. diff --git a/admin/tool/mfa/factor/sms/tests/admin_settings_aws_region_test.php b/lib/tests/aws/admin_settings_aws_region_test.php similarity index 95% rename from admin/tool/mfa/factor/sms/tests/admin_settings_aws_region_test.php rename to lib/tests/aws/admin_settings_aws_region_test.php index 4be49989f43..0b562943511 100644 --- a/admin/tool/mfa/factor/sms/tests/admin_settings_aws_region_test.php +++ b/lib/tests/aws/admin_settings_aws_region_test.php @@ -17,22 +17,22 @@ /** * factor_sms unit tests. * - * @package factor_sms + * @package core * @author Mikhail Golenkov * @copyright 2020 Catalyst IT * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -namespace factor_sms; +namespace core\aws; /** * Testcase for the list of AWS regions admin setting. * - * @package factor_sms + * @package core * @author Mikhail Golenkov * @copyright 2020 Catalyst IT * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - * @covers \admin_settings_aws_region_test + * @covers \core\aws\admin_settings_aws_region */ class admin_settings_aws_region_test extends \advanced_testcase { diff --git a/admin/tool/mfa/factor/sms/tests/aws_helper_test.php b/lib/tests/aws/aws_helper_test.php similarity index 90% rename from admin/tool/mfa/factor/sms/tests/aws_helper_test.php rename to lib/tests/aws/aws_helper_test.php index e7028be20b6..441b1dae400 100644 --- a/admin/tool/mfa/factor/sms/tests/aws_helper_test.php +++ b/lib/tests/aws/aws_helper_test.php @@ -15,18 +15,16 @@ // along with Moodle. If not, see . /** - * factor_sms unit tests. + * aws_helper unit tests. * - * @package factor_sms + * @package core * @author Peter Burnett * @copyright 2020 Catalyst IT * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - * @covers \factor_sms\local\aws_helper + * @covers \core\aws\aws_helper */ -namespace factor_sms; - -use factor_sms\local\aws_helper; +namespace core\aws; /** * Testcase for the AWS helper. @@ -35,7 +33,7 @@ use factor_sms\local\aws_helper; * @author Peter Burnett * @copyright 2020 Catalyst IT * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - * @covers \factor_sms\classes\local\aws_helper + * @covers \core\aws\aws_helper */ class aws_helper_test extends \advanced_testcase {