diff --git a/admin/tool/moodlenet/classes/task/send_mnet_profiles_data_removed_notification.php b/admin/tool/moodlenet/classes/task/send_mnet_profiles_data_removed_notification.php new file mode 100644 index 00000000000..59554542305 --- /dev/null +++ b/admin/tool/moodlenet/classes/task/send_mnet_profiles_data_removed_notification.php @@ -0,0 +1,45 @@ +. + +declare(strict_types=1); + +namespace tool_moodlenet\task; + +use core\message\message; + +/** + * Ad-hoc task to send a notification to admin stating that the user data related to the linked MoodleNet profiles has + * been removed. + * + * @package tool_moodlenet + * @copyright 2022 Mihail Geshoski + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class send_mnet_profiles_data_removed_notification extends \core\task\adhoc_task { + public function execute(): void { + $message = new message(); + $message->component = 'moodle'; + $message->name = 'notices'; + $message->userfrom = \core_user::get_noreply_user(); + $message->userto = get_admin(); + $message->notification = 1; + $message->subject = get_string('removedmnetprofilenotification_subject', 'tool_moodlenet'); + $message->fullmessageformat = FORMAT_HTML; + $message->fullmessagehtml = get_string('removedmnetprofilenotification', 'tool_moodlenet'); + $message->smallmessage = strip_tags($message->fullmessagehtml); + message_send($message); + } +} diff --git a/admin/tool/moodlenet/db/upgrade.php b/admin/tool/moodlenet/db/upgrade.php index ac5a4c92450..d2fc968e8d5 100644 --- a/admin/tool/moodlenet/db/upgrade.php +++ b/admin/tool/moodlenet/db/upgrade.php @@ -126,5 +126,24 @@ function xmldb_tool_moodlenet_upgrade(int $oldversion) { // Automatically generated Moodle v3.10.0 release upgrade line. // Put any upgrade step following this. + if ($oldversion < 2020110901) { + + $selectsql = "moodlenetprofile IS NOT NULL AND moodlenetprofile != ''"; + + // If there are any users with MoodleNet profile set. + if ($DB->count_records_select('user', $selectsql)) { + // Remove the value set for the MoodleNet profile as this format can no longer be used to authenticate + // MoodleNet users. + $DB->set_field_select('user', 'moodlenetprofile', '', $selectsql); + + // Use an adhoc task to send a notification to admin stating that the user data related to the linked + // MoodleNet profiles has been removed. + $notificationtask = new tool_moodlenet\task\send_mnet_profiles_data_removed_notification(); + core\task\manager::queue_adhoc_task($notificationtask); + } + + upgrade_plugin_savepoint(true, 2020110901, 'tool', 'moodlenet'); + } + return true; } diff --git a/admin/tool/moodlenet/lang/en/tool_moodlenet.php b/admin/tool/moodlenet/lang/en/tool_moodlenet.php index d479ea7df49..e48343bef05 100644 --- a/admin/tool/moodlenet/lang/en/tool_moodlenet.php +++ b/admin/tool/moodlenet/lang/en/tool_moodlenet.php @@ -56,6 +56,9 @@ $string['mnetprofiledesc'] = '

Enter your MoodleNet profile details here to be $string['moodlenetsettings'] = 'MoodleNet settings'; $string['moodlenetnotenabled'] = 'The MoodleNet integration must be enabled in Site administration / MoodleNet before resource imports can be processed.'; $string['notification'] = 'You are about to import the content "{$a->name} ({$a->type})" into your site. Select the course in which it should be added, or cancel.'; +$string['removedmnetprofilenotification'] = '

Due to some recent changes on the MoodleNet platform, users that have previously saved their MoodleNet profile on the site can no longer use this data to authenticate on the MoodleNet platform. The related data has now been removed as it is no longer useful.

+

The users will need to reset this information on the site by linking their MoodleNet profile ID which can be found on their MoodleNet profile.

'; +$string['removedmnetprofilenotification_subject'] = 'Linked MoodleNet profiles removed.'; $string['searchcourses'] = "Search courses"; $string['selectpagetitle'] = 'Select page'; $string['pluginname'] = 'MoodleNet'; diff --git a/admin/tool/moodlenet/version.php b/admin/tool/moodlenet/version.php index 9b086d4a27a..34a3e6719a4 100644 --- a/admin/tool/moodlenet/version.php +++ b/admin/tool/moodlenet/version.php @@ -25,6 +25,6 @@ defined('MOODLE_INTERNAL') || die(); $plugin->component = 'tool_moodlenet'; -$plugin->version = 2020110900; +$plugin->version = 2020110901; $plugin->requires = 2020110300; $plugin->maturity = MATURITY_ALPHA;