From 6d5c12e13e6f1199a96180e69cac69d77ecbbcc2 Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Sat, 17 Oct 2009 10:36:50 -0700 Subject: Move the default identity config into the users module and change the Identity constructor to look in module::get_var(gallery, identity_provider) for the current identity driver. In addition, don't just arbitrarily lock the use module. Only lock gallery and the module that is referenced by "user_driver_module" variable. --- modules/gallery/config/identity.php | 37 ------------------- modules/gallery/helpers/module.php | 3 +- modules/gallery/libraries/Identity.php | 66 ++++++++++++++-------------------- modules/user/config/identity.php | 37 +++++++++++++++++++ 4 files changed, 65 insertions(+), 78 deletions(-) delete mode 100644 modules/gallery/config/identity.php create mode 100644 modules/user/config/identity.php (limited to 'modules') diff --git a/modules/gallery/config/identity.php b/modules/gallery/config/identity.php deleted file mode 100644 index 0479d08b..00000000 --- a/modules/gallery/config/identity.php +++ /dev/null @@ -1,37 +0,0 @@ - "gallery", - "allow_updates" => true, - "params" => array(), -); diff --git a/modules/gallery/helpers/module.php b/modules/gallery/helpers/module.php index fe37f4f9..eab94500 100644 --- a/modules/gallery/helpers/module.php +++ b/modules/gallery/helpers/module.php @@ -90,7 +90,8 @@ class module_Core { // Lock certain modules $modules->gallery->locked = true; - $modules->user->locked = true; + $identity_module = self::get_var("gallery", "identity_provider", "user"); + $modules->$identity_module->locked = true; $modules->ksort(); self::$available = $modules; } diff --git a/modules/gallery/libraries/Identity.php b/modules/gallery/libraries/Identity.php index f844cf8f..9eb4b83b 100644 --- a/modules/gallery/libraries/Identity.php +++ b/modules/gallery/libraries/Identity.php @@ -49,49 +49,35 @@ class Identity_Core { /** * Loads the configured driver and validates it. * - * @param array|string custom configuration or config group name * @return void */ - public function __construct($config="default") { - if (is_string($config)) { - $name = $config; - - // Test the config group name - if (($config = Kohana::config("identity.".$config)) === NULL) { - throw new Exception("@todo NO USER LIBRARY CONFIGURATION FOR: $name"); - } - - if (is_array($config)) { - // Append the default configuration options - $config += Kohana::config("identity.default"); - } else { - // Load the default group - $config = Kohana::config("identity.default"); - } - - // Cache the config in the object - $this->config = $config; - - // Set driver name - $driver = "Identity_".ucfirst($this->config["driver"])."_Driver"; - - // Load the driver - if ( ! Kohana::auto_load($driver)) { - throw new Kohana_Exception("core.driver_not_found", $this->config["driver"], - get_class($this)); - } - - // Initialize the driver - $this->driver = new $driver($this->config["params"]); - - // Validate the driver - if ( !($this->driver instanceof Identity_Driver)) { - throw new Kohana_Exception("core.driver_implements", $this->config["driver"], - get_class($this), "Identity_Driver"); - } - - Kohana::log("debug", "Identity Library initialized"); + public function __construct() { + $name = $config = module::get_var("gallery", "identity_provider", "user"); + + // Test the config group name + if (($this->config = Kohana::config("identity.".$config)) === NULL) { + throw new Exception("@todo NO USER LIBRARY CONFIGURATION FOR: $name"); + } + + // Set driver name + $driver = "Identity_".ucfirst($this->config["driver"])."_Driver"; + + // Load the driver + if ( ! Kohana::auto_load($driver)) { + throw new Kohana_Exception("core.driver_not_found", $this->config["driver"], + get_class($this)); } + + // Initialize the driver + $this->driver = new $driver($this->config["params"]); + + // Validate the driver + if ( !($this->driver instanceof Identity_Driver)) { + throw new Kohana_Exception("core.driver_implements", $this->config["driver"], + get_class($this), "Identity_Driver"); + } + + Kohana::log("debug", "Identity Library initialized"); } /** diff --git a/modules/user/config/identity.php b/modules/user/config/identity.php new file mode 100644 index 00000000..f9f013aa --- /dev/null +++ b/modules/user/config/identity.php @@ -0,0 +1,37 @@ + "gallery", + "allow_updates" => true, + "params" => array(), +); -- cgit v1.2.3