From 8a36c24f39e7a6111f7872ec443e6efa63580c82 Mon Sep 17 00:00:00 2001 From: Bharat Mediratta Date: Mon, 6 Sep 2010 18:20:46 -0700 Subject: Fix some broken identity APIs: - add_user_to_group and remove_user_from_group should take Group_Definition instances to be consistent - add_user_to_group and remove_user_from_group in drivers/IdentityProvider.php should not be static --- modules/user/libraries/drivers/IdentityProvider/Gallery.php | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) (limited to 'modules/user/libraries/drivers') diff --git a/modules/user/libraries/drivers/IdentityProvider/Gallery.php b/modules/user/libraries/drivers/IdentityProvider/Gallery.php index 1ed7dd4f..44433ad7 100644 --- a/modules/user/libraries/drivers/IdentityProvider/Gallery.php +++ b/modules/user/libraries/drivers/IdentityProvider/Gallery.php @@ -148,9 +148,7 @@ class IdentityProvider_Gallery_Driver implements IdentityProvider_Driver { /** * @see IdentityProvider_Driver::add_user_to_group. */ - static function add_user_to_group($user, $group_id) { - $group = self::lookup_group($group_id); - + public function add_user_to_group($user, $group) { $group->add($user); $group->save(); } @@ -158,8 +156,7 @@ class IdentityProvider_Gallery_Driver implements IdentityProvider_Driver { /** * @see IdentityProvider_Driver::remove_user_to_group. */ - static function remove_user_from_group($user, $group_id) { - $group = self::lookup_group_by_name($group_id); + public function remove_user_from_group($user, $group_id) { $group->remove($user); $group->save(); } -- cgit v1.2.3 From a88b3f580812e7670933a6d695c89ef93f0142d4 Mon Sep 17 00:00:00 2001 From: Bharat Mediratta Date: Sat, 11 Sep 2010 00:47:48 -0700 Subject: Implement IdentityProvider_Gallery_Driver::admin_user() properly such that it's not hardcoded to return the user with id 2. Create user::admin_user() which finds an appropriate admin and returns it. Fixes #1358. --- modules/user/helpers/user.php | 14 ++++++++++++++ .../user/libraries/drivers/IdentityProvider/Gallery.php | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) (limited to 'modules/user/libraries/drivers') diff --git a/modules/user/helpers/user.php b/modules/user/helpers/user.php index 55153263..be50d6d1 100644 --- a/modules/user/helpers/user.php +++ b/modules/user/helpers/user.php @@ -35,6 +35,20 @@ class user_Core { return model_cache::get("user", 1); } + /** + * Return an admin user. Prefer the currently logged in user, if possible. + * + * @return User_Model + */ + static function admin_user() { + $active = identity::active_user(); + if ($active->admin) { + return $active; + } + + return ORM::factory("user")->where("admin", "=", 1)->order_by("id", "ASC")->find(); + } + /** * Is the password provided correct? * diff --git a/modules/user/libraries/drivers/IdentityProvider/Gallery.php b/modules/user/libraries/drivers/IdentityProvider/Gallery.php index 44433ad7..73ac9bd0 100644 --- a/modules/user/libraries/drivers/IdentityProvider/Gallery.php +++ b/modules/user/libraries/drivers/IdentityProvider/Gallery.php @@ -32,7 +32,7 @@ class IdentityProvider_Gallery_Driver implements IdentityProvider_Driver { * @see IdentityProvider_Driver::guest. */ public function admin_user() { - return self::lookup_user(2); + return user::admin_user(); } /** -- cgit v1.2.3