diff options
author | Tim Almdal <tnalmdal@shaw.ca> | 2009-10-16 07:41:33 -0700 |
---|---|---|
committer | Tim Almdal <tnalmdal@shaw.ca> | 2009-10-16 08:55:26 -0700 |
commit | bc241e44c2e4d10ac19ccc32a40c90426672d963 (patch) | |
tree | aade0e13346a059c061e2f2f4a767e25a45fe17b /modules/user/libraries | |
parent | 00eacd659f27df9c13246c510057c4f42c8866a2 (diff) |
Cleanup merge of user/group helpers into Identity interface. Reduce redundant code in the user module and remove references to the Identity helper from the user module as the user module should be able to access things directly. Simplify the get_user_list api method to just accept an array of ids to return user objects for.
Diffstat (limited to 'modules/user/libraries')
-rw-r--r-- | modules/user/libraries/drivers/Identity/Gallery.php | 124 |
1 files changed, 28 insertions, 96 deletions
diff --git a/modules/user/libraries/drivers/Identity/Gallery.php b/modules/user/libraries/drivers/Identity/Gallery.php index 013497b6..77db11a3 100644 --- a/modules/user/libraries/drivers/Identity/Gallery.php +++ b/modules/user/libraries/drivers/Identity/Gallery.php @@ -25,28 +25,14 @@ class Identity_Gallery_Driver implements Identity_Driver { * @see Identity_Driver::guest. */ public function guest() { - return new Gallery_User(model_cache::get("user", 1)); + return new Gallery_User(user::guest()); } /** * @see Identity_Driver::create_user. */ public function create_user($name, $full_name, $password) { - $user = ORM::factory("user")->where("name", $name)->find(); - if ($user->loaded) { - throw new Exception("@todo USER_ALREADY_EXISTS $name"); - } - - $user->name = $name; - $user->full_name = $full_name; - $user->password = $password; - - // Required groups - $user->add($this->everybody()->_uncloaked()); - $user->add($this->registered_users()->_uncloaked()); - - $user->save(); - return new Gallery_User($user); + return new Gallery_User(user::create($name, $full_name, $password)); } /** @@ -84,126 +70,58 @@ class Identity_Gallery_Driver implements Identity_Driver { * @see Identity_Driver::hash_password. */ public function hash_password($password) { - require_once(MODPATH . "user/lib/PasswordHash.php"); - $hashGenerator = new PasswordHash(10, true); - return $hashGenerator->HashPassword($password); + return user::hash_password($password); } /** * @see Identity_Driver::lookup_user_by_field. */ public function lookup_user_by_field($field_name, $value) { - try { - $user = model_cache::get("user", $value, $field_name); - if ($user->loaded) { - return new Gallery_User($user); - } - } catch (Exception $e) { - if (strpos($e->getMessage(), "MISSING_MODEL") === false) { - throw $e; - } - } - return null; + return new Gallery_User(user::lookup_by_field($field_name, $value)); } /** * @see Identity_Driver::create_group. */ public function create_group($name) { - $group = ORM::factory("group")->where("name", $name)->find(); - if ($group->loaded) { - throw new Exception("@todo GROUP_ALREADY_EXISTS $name"); - } - - $group->name = $name; - $group->save(); - - return new Gallery_Group($group); + return new Gallery_Group(group::create($name)); } /** * @see Identity_Driver::everybody. */ public function everybody() { - return new Gallery_Group(model_cache::get("group", 1)); + return new Gallery_Group(group::everybody()); } /** * @see Identity_Driver::registered_users. */ public function registered_users() { - return new Gallery_Group(model_cache::get("group", 2)); + return new Gallery_Group(group::registered_users()); } /** * @see Identity_Driver::lookup_group_by_field. */ public function lookup_group_by_field($field_name, $value) { - try { - $group = model_cache::get("group", $value, $field_name); - if ($group->loaded) { - return new Gallery_Group($group); - } - } catch (Exception $e) { - if (strpos($e->getMessage(), "MISSING_MODEL") === false) { - throw $e; - } - } - return null; + return new Gallery_Group(group::lookup_by_field($field_name, $value)); } /** * @see Identity_Driver::get_user_list. */ - public function get_user_list($filter=array()) { - $results = $this->_do_search("user", $filter); + public function get_user_list($ids) { + $results = ORM::factory("user") + ->in("id", ids) + ->find_all() + ->as_array();; $users = array(); - foreach ($results->as_array() as $user) { + foreach ($results as $user) { $users[] = new Gallery_User($user); } return $users; } - - /** - * @see Identity_Driver::get_group_list. - */ - public function get_group_list($filter=array()) { - $results = $this->_do_search("group", $filter); - $groups = array(); - foreach ($results->as_array() as $group) { - $groups[] = new Gallery_Group($group); - } - return $groups; - } - - /** - * @see Identity_Driver::get_edit_rules. - */ - public function get_edit_rules($object_type) { - return (object)ORM::factory($object_type)->rules; - } - - /** - * Build the query based on the supplied filters for the specified model. - * @param string $object_type to return rules for ("user"|"group") - * @param mixed $filters options to apply to the selection. - */ - private function _do_search($object_type, $filter) { - $object = ORM::factory($object_type); - - foreach ($filter as $method => $args) { - switch ($method) { - case "in": - $object->in($args[0], $args[1]); - break; - default: - $object->$method($args); - } - } - - return $object->find_all(); - } - } // End Identity Gallery Driver /** @@ -217,6 +135,20 @@ class Gallery_User extends User_Definition { $this->user = $user; } + /** + * @see User_Definition::avatar_url + */ + public function avatar_url($size=80, $default=null) { + return $this->user->avatar_url($size, $default); + } + + /** + * @see User_Definition::display_name + */ + public function display_name() { + return $this->user->display_name(); + } + public function save() { $this->user->save(); } |