From 3ece1a01f25270939b3c12f754d555d6ac54d375 Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Tue, 20 Oct 2009 17:01:19 -0700 Subject: Add a groups api method on the Identity provider and change access_Core::_get_all_groups() to use this to get the defined groups. --- modules/gallery/helpers/access.php | 7 ++++--- modules/gallery/libraries/Identity.php | 11 +++++++++-- modules/gallery/libraries/drivers/Identity.php | 5 +++++ 3 files changed, 18 insertions(+), 5 deletions(-) (limited to 'modules/gallery') diff --git a/modules/gallery/helpers/access.php b/modules/gallery/helpers/access.php index fba161e3..4e7491e3 100644 --- a/modules/gallery/helpers/access.php +++ b/modules/gallery/helpers/access.php @@ -419,10 +419,11 @@ class access_Core { * @return ORM_Iterator */ private static function _get_all_groups() { - // When we build the gallery package, it's possible that the user module is not installed yet. + // When we build the gallery package, it's possible that there is no identity provider installed yet. // This is ok at packaging time, so work around it. - if (module::is_active("user")) { - return ORM::factory("group")->find_all(); + $config = module::get_var("gallery", "identity_provider"); + if (!empty($config)) { + return Identity::groups(); } else { return array(); } diff --git a/modules/gallery/libraries/Identity.php b/modules/gallery/libraries/Identity.php index 3fcb6756..3ef13a6d 100644 --- a/modules/gallery/libraries/Identity.php +++ b/modules/gallery/libraries/Identity.php @@ -65,11 +65,11 @@ class Identity_Core { * @return void */ public function __construct() { - $name = $config = module::get_var("gallery", "identity_provider", "user"); + $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"); + throw new Exception("@todo NO USER LIBRARY CONFIGURATION FOR: $config"); } // Set driver name @@ -205,4 +205,11 @@ class Identity_Core { static function get_user_list($ids) { return self::instance()->driver->get_user_list($ids); } + + /** + * @see Identity_Driver::groups. + */ + static function groups() { + return self::instance()->driver->groups(); + } } // End Identity diff --git a/modules/gallery/libraries/drivers/Identity.php b/modules/gallery/libraries/drivers/Identity.php index 2fc4d349..b77eb6be 100644 --- a/modules/gallery/libraries/drivers/Identity.php +++ b/modules/gallery/libraries/drivers/Identity.php @@ -97,6 +97,11 @@ interface Identity_Driver { */ public function get_user_list($ids); + /** + * List the groups defined in the Identity Provider + */ + static function groups(); + } // End Identity Driver Definition interface Group_Definition {} -- cgit v1.2.3