See Release Notes
Long Term Support Release
Differences Between: [Versions 39 and 310] [Versions 39 and 311] [Versions 39 and 400] [Versions 39 and 401] [Versions 39 and 402] [Versions 39 and 403]
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 * OAuth2 authentication plugin upgrade code 19 * 20 * @package auth_oauth2 21 * @copyright 2017 Damyon Wiese 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 function 29 * 30 * @param int $oldversion the version we are upgrading from 31 * @return bool result 32 */ 33 function xmldb_auth_oauth2_upgrade($oldversion) { 34 global $DB; 35 36 $dbman = $DB->get_manager(); 37 38 // Automatically generated Moodle v3.5.0 release upgrade line. 39 // Put any upgrade step following this. 40 41 // Automatically generated Moodle v3.6.0 release upgrade line. 42 // Put any upgrade step following this. 43 44 // Automatically generated Moodle v3.7.0 release upgrade line. 45 // Put any upgrade step following this. 46 47 if ($oldversion < 2019052001) { 48 // Fetch Facebook, Google, and Microsoft issuers. We use the URL field to determine the issuer type as it's the only 49 // field that contains the keyword that can somewhat let us reliably determine the issuer type. 50 $likefacebook = $DB->sql_like('oe.url', ':facebook'); 51 $likegoogle = $DB->sql_like('oe.url', ':google'); 52 $likemicrosoft = $DB->sql_like('oe.url', ':microsoft'); 53 54 $params = [ 55 'facebook' => '%facebook%', 56 'google' => '%google%', 57 'microsoft' => '%microsoft%', 58 ]; 59 60 // We're querying from the oauth2_endpoint table because the base URLs of FB and Microsoft can be empty in the issuer table. 61 $subsql = " 62 SELECT DISTINCT oe.issuerid 63 FROM {oauth2_endpoint} oe 64 WHERE $likefacebook 65 OR $likegoogle 66 OR $likemicrosoft"; 67 68 // Update non-Facebook/Google/Microsoft issuers and set requireconfirmation to 1. 69 $updatesql = " 70 UPDATE {oauth2_issuer} 71 SET requireconfirmation = 1 72 WHERE id NOT IN ({$subsql})"; 73 $DB->execute($updatesql, $params); 74 75 // Delete linked logins for non-Facebook/Google/Microsoft issuers. They can easily re-link their logins anyway. 76 $DB->delete_records_select('auth_oauth2_linked_login', "issuerid NOT IN ($subsql)", $params); 77 78 upgrade_plugin_savepoint(true, 2019052001, 'auth', 'oauth2'); 79 } 80 81 // Automatically generated Moodle v3.8.0 release upgrade line. 82 // Put any upgrade step following this. 83 84 // Automatically generated Moodle v3.9.0 release upgrade line. 85 // Put any upgrade step following this. 86 87 return true; 88 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body