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 * 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.6.0 release upgrade line. 39 // Put any upgrade step following this. 40 41 // Automatically generated Moodle v3.7.0 release upgrade line. 42 // Put any upgrade step following this. 43 44 if ($oldversion < 2019052001) { 45 // Fetch Facebook, Google, and Microsoft issuers. We use the URL field to determine the issuer type as it's the only 46 // field that contains the keyword that can somewhat let us reliably determine the issuer type. 47 $likefacebook = $DB->sql_like('oe.url', ':facebook'); 48 $likegoogle = $DB->sql_like('oe.url', ':google'); 49 $likemicrosoft = $DB->sql_like('oe.url', ':microsoft'); 50 51 $params = [ 52 'facebook' => '%facebook%', 53 'google' => '%google%', 54 'microsoft' => '%microsoft%', 55 ]; 56 57 // We're querying from the oauth2_endpoint table because the base URLs of FB and Microsoft can be empty in the issuer table. 58 $subsql = " 59 SELECT DISTINCT oe.issuerid 60 FROM {oauth2_endpoint} oe 61 WHERE $likefacebook 62 OR $likegoogle 63 OR $likemicrosoft"; 64 65 // Update non-Facebook/Google/Microsoft issuers and set requireconfirmation to 1. 66 $updatesql = " 67 UPDATE {oauth2_issuer} 68 SET requireconfirmation = 1 69 WHERE id NOT IN ({$subsql})"; 70 $DB->execute($updatesql, $params); 71 72 // Delete linked logins for non-Facebook/Google/Microsoft issuers. They can easily re-link their logins anyway. 73 $DB->delete_records_select('auth_oauth2_linked_login', "issuerid NOT IN ($subsql)", $params); 74 75 upgrade_plugin_savepoint(true, 2019052001, 'auth', 'oauth2'); 76 } 77 78 // Automatically generated Moodle v3.8.0 release upgrade line. 79 // Put any upgrade step following this. 80 81 // Automatically generated Moodle v3.9.0 release upgrade line. 82 // Put any upgrade step following this. 83 84 // Automatically generated Moodle v3.10.0 release upgrade line. 85 // Put any upgrade step following this. 86 87 // Automatically generated Moodle v3.11.0 release upgrade line. 88 // Put any upgrade step following this. 89 90 return true; 91 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body