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/helpers/group.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'modules/user/helpers') diff --git a/modules/user/helpers/group.php b/modules/user/helpers/group.php index c84910f1..88bfac35 100644 --- a/modules/user/helpers/group.php +++ b/modules/user/helpers/group.php @@ -68,13 +68,13 @@ class group_Core { */ private static function _lookup_by_field($field_name, $value) { try { - $user = model_cache::get("group", $value, $field_name); - if ($user->loaded()) { - return $user; + $group = model_cache::get("group", $value, $field_name); + if ($group->loaded()) { + return $group; } } catch (Exception $e) { if (strpos($e->getMessage(), "MISSING_MODEL") === false) { - throw $e; + throw $e; } } return null; -- 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/helpers') 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