Differences Between: [Versions 310 and 311] [Versions 311 and 400] [Versions 311 and 401] [Versions 311 and 402] [Versions 311 and 403] [Versions 39 and 311]
1 <?php 2 // This file is part of Moodle - http://moodle.org/ 3 // 4 // Moodle is free software: you can redistribute it and/or modify 5 // it under the terms of the GNU General Public License as published by 6 // the Free Software Foundation, either version 3 of the License, or 7 // (at your option) any later version. 8 // 9 // Moodle is distributed in the hope that it will be useful, 10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 // GNU General Public License for more details. 13 // 14 // You should have received a copy of the GNU General Public License 15 // along with Moodle. If not, see <http://www.gnu.org/licenses/>. 16 17 /** 18 * Upgrade script for tool_moodlenet. 19 * 20 * @package tool_moodlenet 21 * @copyright 2020 Adrian Greeve <adrian@moodle.com> 22 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 23 */ 24 25 defined('MOODLE_INTERNAL') || die(); 26 27 /** 28 * Upgrade the plugin. 29 * 30 * @param int $oldversion 31 * @return bool always true 32 */ 33 function xmldb_tool_moodlenet_upgrade(int $oldversion) { 34 global $CFG, $DB; 35 if ($oldversion < 2020060500) { 36 37 // Grab some of the old settings. 38 $categoryname = get_config('tool_moodlenet', 'profile_category'); 39 $profilefield = get_config('tool_moodlenet', 'profile_field_name'); 40 41 // Master version only! 42 43 // Find out if we have a custom profile field for moodle.net. 44 $sql = "SELECT f.* 45 FROM {user_info_field} f 46 JOIN {user_info_category} c ON c.id = f.categoryid and c.name = :categoryname 47 WHERE f.shortname = :name"; 48 49 $params = [ 50 'categoryname' => $categoryname, 51 'name' => $profilefield 52 ]; 53 54 $record = $DB->get_record_sql($sql, $params); 55 56 if (!empty($record)) { 57 $userentries = $DB->get_recordset('user_info_data', ['fieldid' => $record->id]); 58 $recordstodelete = []; 59 foreach ($userentries as $userentry) { 60 $data = (object) [ 61 'id' => $userentry->userid, 62 'moodlenetprofile' => $userentry->data 63 ]; 64 $DB->update_record('user', $data, true); 65 $recordstodelete[] = $userentry->id; 66 } 67 $userentries->close(); 68 69 // Remove the user profile data, fields, and category. 70 $DB->delete_records_list('user_info_data', 'id', $recordstodelete); 71 $DB->delete_records('user_info_field', ['id' => $record->id]); 72 $DB->delete_records('user_info_category', ['name' => $categoryname]); 73 unset_config('profile_field_name', 'tool_moodlenet'); 74 unset_config('profile_category', 'tool_moodlenet'); 75 } 76 77 upgrade_plugin_savepoint(true, 2020060500, 'tool', 'moodlenet'); 78 } 79 80 if ($oldversion < 2020061501) { 81 // Change the domain. 82 $defaultmoodlenet = get_config('tool_moodlenet', 'defaultmoodlenet'); 83 84 if ($defaultmoodlenet === 'https://home.moodle.net') { 85 set_config('defaultmoodlenet', 'https://moodle.net', 'tool_moodlenet'); 86 } 87 88 // Change the name. 89 $defaultmoodlenetname = get_config('tool_moodlenet', 'defaultmoodlenetname'); 90 91 if ($defaultmoodlenetname === 'Moodle HQ MoodleNet') { 92 set_config('defaultmoodlenetname', 'MoodleNet Central', 'tool_moodlenet'); 93 } 94 95 upgrade_plugin_savepoint(true, 2020061501, 'tool', 'moodlenet'); 96 } 97 98 if ($oldversion < 2020061502) { 99 // Disable the MoodleNet integration by default till further notice. 100 set_config('enablemoodlenet', 0, 'tool_moodlenet'); 101 102 upgrade_plugin_savepoint(true, 2020061502, 'tool', 'moodlenet'); 103 } 104 105 // Automatically generated Moodle v3.9.0 release upgrade line. 106 // Put any upgrade step following this. 107 108 if ($oldversion < 2020090700) { 109 110 // Find out if there are users with MoodleNet profiles set. 111 $sql = "SELECT u.* 112 FROM {user} u 113 WHERE u.moodlenetprofile IS NOT NULL"; 114 115 $records = $DB->get_records_sql($sql); 116 117 foreach ($records as $record) { 118 // Force clean user value just incase there is something malicious. 119 $record->moodlenetprofile = clean_text($record->moodlenetprofile, PARAM_NOTAGS); 120 $DB->update_record('user', $record); 121 } 122 123 upgrade_plugin_savepoint(true, 2020090700, 'tool', 'moodlenet'); 124 } 125 126 // Automatically generated Moodle v3.10.0 release upgrade line. 127 // Put any upgrade step following this. 128 129 // Automatically generated Moodle v3.11.0 release upgrade line. 130 // Put any upgrade step following this. 131 132 if ($oldversion < 2021051701) { 133 134 $selectsql = "moodlenetprofile IS NOT NULL AND moodlenetprofile != ''"; 135 136 // If there are any users with MoodleNet profile set. 137 if ($DB->count_records_select('user', $selectsql)) { 138 // Remove the value set for the MoodleNet profile as this format can no longer be used to authenticate 139 // MoodleNet users. 140 $DB->set_field_select('user', 'moodlenetprofile', '', $selectsql); 141 142 // Use an adhoc task to send a notification to admin stating that the user data related to the linked 143 // MoodleNet profiles has been removed. 144 $notificationtask = new tool_moodlenet\task\send_mnet_profiles_data_removed_notification(); 145 core\task\manager::queue_adhoc_task($notificationtask); 146 } 147 148 upgrade_plugin_savepoint(true, 2021051701, 'tool', 'moodlenet'); 149 } 150 151 return true; 152 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body