diff options
author | Bharat Mediratta <bharat@menalto.com> | 2010-09-11 00:47:48 -0700 |
---|---|---|
committer | Bharat Mediratta <bharat@menalto.com> | 2010-09-11 00:47:48 -0700 |
commit | a88b3f580812e7670933a6d695c89ef93f0142d4 (patch) | |
tree | 0d9549174516c9bced2e331eb591e7653d4de9eb /modules/user | |
parent | 81327641cd4d2d5bf5e1de8438ebf44d0c318314 (diff) |
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.
Diffstat (limited to 'modules/user')
-rw-r--r-- | modules/user/helpers/user.php | 14 | ||||
-rw-r--r-- | modules/user/libraries/drivers/IdentityProvider/Gallery.php | 2 |
2 files changed, 15 insertions, 1 deletions
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 @@ -36,6 +36,20 @@ class user_Core { } /** + * 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? * * @param user User Model 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(); } /** |