diff options
Diffstat (limited to 'modules/gallery')
-rw-r--r-- | modules/gallery/controllers/upgrader.php | 10 | ||||
-rw-r--r-- | modules/gallery/helpers/module.php | 15 |
2 files changed, 14 insertions, 11 deletions
diff --git a/modules/gallery/controllers/upgrader.php b/modules/gallery/controllers/upgrader.php index 1aa607ef..a86e8af9 100644 --- a/modules/gallery/controllers/upgrader.php +++ b/modules/gallery/controllers/upgrader.php @@ -56,9 +56,13 @@ class Upgrader_Controller extends Controller { access::forbidden(); } - // Upgrade gallery and user first - module::upgrade("gallery"); - module::upgrade("user"); + $available = module::available(); + // Upgrade gallery first + $gallery = $available["gallery"]; + if ($gallery->code_version != $gallery->version) { + module::upgrade("gallery"); + module::activate("gallery"); + } // Then upgrade the rest foreach (module::available() as $id => $module) { diff --git a/modules/gallery/helpers/module.php b/modules/gallery/helpers/module.php index 9d41cd51..27bc3784 100644 --- a/modules/gallery/helpers/module.php +++ b/modules/gallery/helpers/module.php @@ -155,10 +155,6 @@ class module_Core { * @param string $module_name */ static function upgrade($module_name) { - $kohana_modules = Kohana::config("core.modules"); - $kohana_modules = array_unshift($kohana_modules, MODPATH . $module_name); - Kohana::config_set("core.modules", $kohana_modules); - $version_before = module::get_version($module_name); $installer_class = "{$module_name}_installer"; if (method_exists($installer_class, "upgrade")) { @@ -171,11 +167,14 @@ class module_Core { throw new Exception("@todo UNKNOWN_MODULE"); } } - module::load_modules(); - // Now the module is upgraded but inactive, so don't leave it in the active path - array_shift($kohana_modules); - Kohana::config_set("core.modules", $kohana_modules); + // Now the module is upgraded so deactivate it, but we can'it deactivae gallery or the + // current identity provider. + $identity_provider = module::get_var("gallery", "identity_provider", "user"); + if (!in_array($module_name, array("gallery", $identity_provider)) ) { + self::deactivate($module_name); + } + module::load_modules(); $version_after = module::get_version($module_name); if ($version_before != $version_after) { |