/** * Create a new user. * * @param string $name * @param string $full_name * @param string $password * @return User_Model */ static function create($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(group::everybody()); $user->add(group::registered_users()); $user->save(); return $user; }
/** * Handle any business logic necessary to create or update a user. * @see ORM::save() * * @return ORM User_Model */ public function save() { if (!$this->loaded()) { // New user $this->add(group::everybody()); if (!$this->guest) { $this->add(group::registered_users()); } parent::save(); module::event("user_created", $this); } else { // Updated user $original = ORM::factory("user", $this->id); parent::save(); module::event("user_updated", $original, $this); } return $this; }
/** * Import a single group. */ static function import_group(&$queue) { $g2_group_id = array_shift($queue); if (self::map($g2_group_id)) { return t("Group with id: %id already imported, skipping", array("id" => $g2_group_id)); } try { $g2_group = g2(GalleryCoreApi::loadEntitiesById($g2_group_id)); } catch (Exception $e) { return t("Failed to import Gallery 2 group with id: %id\n%exception", array("id" => $g2_group_id, "exception" => $e->__toString())); } switch ($g2_group->getGroupType()) { case GROUP_NORMAL: try { $group = group::create($g2_group->getGroupName()); } catch (Exception $e) { // @todo For now we assume this is a "duplicate group" exception $group = group::lookup_by_name($g2_group->getGroupname()); } $message = t("Group '%name' was imported", array("name" => $g2_group->getGroupname())); break; case GROUP_ALL_USERS: $group = group::registered_users(); $message = t("Group 'Registered' was converted to '%name'", array("name" => $group->name)); break; case GROUP_SITE_ADMINS: $message = t("Group 'Admin' does not exist in Gallery 3, skipping"); break; // This is not a group in G3 // This is not a group in G3 case GROUP_EVERYBODY: $group = group::everybody(); $message = t("Group 'Everybody' was converted to '%name'", array("name" => $group->name)); break; } if (isset($group)) { self::set_map($g2_group->getId(), $group->id); } return $message; }
/** * Import a single group. */ static function import_group(&$queue) { $g2_group_id = array_shift($queue); if (self::map($g2_group_id)) { return; } try { $g2_group = g2(GalleryCoreApi::loadEntitiesById($g2_group_id)); } catch (Exception $e) { g2_import::log(t("Failed to import Gallery 2 group with id: %id", array("id" => $g2_group_id))); return; } switch ($g2_group->getGroupType()) { case GROUP_NORMAL: try { $group = group::create($g2_group->getGroupName()); } catch (Exception $e) { // @todo For now we assume this is a "duplicate group" exception $group = group::lookup_by_name($g2_group->getGroupname()); } break; case GROUP_ALL_USERS: $group = group::registered_users(); break; case GROUP_SITE_ADMINS: break; // This is not a group in G3 // This is not a group in G3 case GROUP_EVERYBODY: $group = group::everybody(); break; } if (isset($group)) { self::set_map($g2_group->getId(), $group->id); } }
public function user_can_no_access_test() { $root = ORM::factory("item", 1); $item = album::create($root, rand(), "test album"); access::deny(group::everybody(), "view", $item); access::deny(group::registered_users(), "view", $item); $user = user::create("access_test", "Access Test", ""); foreach ($user->groups as $group) { $user->remove($group); } $user->save(); $this->assert_false(access::user_can($user, "view", $item), "Should be unable to view"); }
/** * @see IdentityProvider_Driver::registered_users. */ public function registered_users() { return group::registered_users(); }