summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Almdal <tnalmdal@shaw.ca>2009-10-17 10:36:50 -0700
committerTim Almdal <tnalmdal@shaw.ca>2009-10-18 08:00:33 -0700
commit6d5c12e13e6f1199a96180e69cac69d77ecbbcc2 (patch)
tree25367ea99f9c872d49738e31e6b6c7917eeecba9
parent78ee4193b70329c8e0929efd18c22324dd2ad8e0 (diff)
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.
-rw-r--r--modules/gallery/helpers/module.php3
-rw-r--r--modules/gallery/libraries/Identity.php66
-rw-r--r--modules/user/config/identity.php (renamed from modules/gallery/config/identity.php)12
3 files changed, 34 insertions, 47 deletions
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/gallery/config/identity.php b/modules/user/config/identity.php
index 0479d08b..f9f013aa 100644
--- a/modules/gallery/config/identity.php
+++ b/modules/user/config/identity.php
@@ -26,12 +26,12 @@
* Each group can be used independently, and multiple groups can be used at once.
*
* Group Options:
- * driver - User backend driver. Gallery comes with Gallery user driver.
- *
- * params - Driver parameters, specific to each driver.
+ * driver - User backend driver. Gallery comes with Gallery user driver.
+ * allow_updates - Flag to indicate that the back end allows updates.
+ * params - Driver parameters, specific to each driver.
*/
-$config["default"] = array (
- "driver" => "gallery",
+$config["user"] = array (
+ "driver" => "gallery",
"allow_updates" => true,
- "params" => array(),
+ "params" => array(),
);