config = Kohana::config("identity.".$config)) === NULL) { throw new Exception("@todo NO USER LIBRARY CONFIGURATION FOR: $config"); } // Set driver name $driver = "IdentityProvider_".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 IdentityProvider_Driver)) { throw new Kohana_Exception("core.driver_implements", $this->config["driver"], get_class($this), "IdentityProvider_Driver"); } Kohana::log("debug", "Identity Library initialized"); } /** * Determine if if the current driver supports updates. * * @return boolean true if the driver supports updates; false if read only */ public function is_writable() { return !empty($this->config["allow_updates"]); } /** * @see IdentityProvider_Driver::activate. */ public function activate() { $this->driver->activate(); } /** * @see IdentityProvider_Driver::deactivate. */ public function deactivate() { $this->driver->deactivate(); } /** * @see IdentityProvider_Driver::guest. */ public function guest() { return $this->driver->guest(); } /** * @see IdentityProvider_Driver::create_user. */ public function create_user($name, $full_name, $password) { return $this->driver->create_user($name, $full_name, $password); } /** * @see IdentityProvider_Driver::is_correct_password. */ public function is_correct_password($user, $password) { return $this->driver->is_correct_password($user, $password); } /** * @see IdentityProvider_Driver::lookup_user. */ public function lookup_user($id) { return $this->driver->lookup_user($id); } /** * @see IdentityProvider_Driver::lookup_user_by_name. */ public function lookup_user_by_name($name) { return $this->driver->lookup_user_by_name($name); } /** * @see IdentityProvider_Driver::create_group. */ public function create_group($name) { return $this->driver->create_group($name); } /** * @see IdentityProvider_Driver::everybody. */ public function everybody() { return $this->driver->everybody(); } /** * @see IdentityProvider_Driver::registered_users. */ public function registered_users() { return $this->driver->everybody(); } /** * @see IdentityProvider_Driver::lookup_group. */ public function lookup_group($id) { return $this->driver->lookup_group($id); } /** * @see IdentityProvider_Driver::lookup_group_by_name. */ public function lookup_group_by_name($name) { return $this->driver->lookup_group_by_name($name); } /** * @see IdentityProvider_Driver::get_user_list. */ public function get_user_list($ids) { return $this->driver->get_user_list($ids); } /** * @see IdentityProvider_Driver::groups. */ public function groups() { return $this->driver->groups(); } } // End Identity