mirror of
https://github.com/moodle/moodle.git
synced 2025-01-18 22:08:20 +01:00
Merge branch 'MDL-58857-master' of git://github.com/andrewnicols/moodle
This commit is contained in:
commit
265a1eafc5
@ -101,6 +101,12 @@ if (function_exists('opcache_invalidate')) {
|
||||
// indirectly calls the protected init() method is good here.
|
||||
core_component::get_core_subsystems();
|
||||
|
||||
if (is_major_upgrade_required() && isloggedin()) {
|
||||
// A major upgrade is required.
|
||||
// Terminate the session and redirect back here before anything DB-related happens.
|
||||
redirect_if_major_upgrade_required();
|
||||
}
|
||||
|
||||
require_once($CFG->libdir.'/adminlib.php'); // various admin-only functions
|
||||
require_once($CFG->libdir.'/upgradelib.php'); // general upgrade/install related functions
|
||||
|
||||
|
@ -1388,16 +1388,34 @@ function disable_output_buffering() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Check whether a major upgrade is needed. That is defined as an upgrade that
|
||||
* changes something really fundamental in the database, so nothing can possibly
|
||||
* work until the database has been updated, and that is defined by the hard-coded
|
||||
* version number in this function.
|
||||
* Check whether a major upgrade is needed.
|
||||
*
|
||||
* That is defined as an upgrade that changes something really fundamental
|
||||
* in the database, so nothing can possibly work until the database has
|
||||
* been updated, and that is defined by the hard-coded version number in
|
||||
* this function.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
function is_major_upgrade_required() {
|
||||
global $CFG;
|
||||
$lastmajordbchanges = 2017040403.00;
|
||||
|
||||
$required = empty($CFG->version);
|
||||
$required = $required || (float)$CFG->version < $lastmajordbchanges;
|
||||
$required = $required || during_initial_install();
|
||||
$required = $required || !empty($CFG->adminsetuppending);
|
||||
|
||||
return $required;
|
||||
}
|
||||
|
||||
/**
|
||||
* Redirect to the Notifications page if a major upgrade is required, and
|
||||
* terminate the current user session.
|
||||
*/
|
||||
function redirect_if_major_upgrade_required() {
|
||||
global $CFG;
|
||||
$lastmajordbchanges = 2017040403.00;
|
||||
if (empty($CFG->version) or (float)$CFG->version < $lastmajordbchanges or
|
||||
during_initial_install() or !empty($CFG->adminsetuppending)) {
|
||||
if (is_major_upgrade_required()) {
|
||||
try {
|
||||
@\core\session\manager::terminate_current();
|
||||
} catch (Exception $e) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user