From 08c01fec6cc590eb578522164de81114b889c4b5 Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Mon, 5 Oct 2009 11:51:08 -0700 Subject: The initial commit of refactoring the user/group adminsitration into a driver. Create an Identity library that defines the interface the Gallery3 expects Move the user and group helpers into the gallery module to provide the familiar interface into the Identity library. Create a Gallery Identity back-end that is supplied by the user module. The vision here is that all user and group code that is gallery or ui specific is contained within the core product. Anything that relates to manipulating a user or group is contained in the back end code that can be replaced. --- modules/gallery/helpers/group.php | 114 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 modules/gallery/helpers/group.php (limited to 'modules/gallery/helpers/group.php') diff --git a/modules/gallery/helpers/group.php b/modules/gallery/helpers/group.php new file mode 100644 index 00000000..e0182f9f --- /dev/null +++ b/modules/gallery/helpers/group.php @@ -0,0 +1,114 @@ +id", "", "post", array("id" => "g-edit-group-form")); + $form_group = $form->group("edit_group")->label(t("Edit Group")); + $form_group->input("name")->label(t("Name"))->id("g-name")->value($group->name); + $form_group->inputs["name"]->error_messages( + "in_use", t("There is already a group with that name")); + $form_group->submit("")->value(t("Save")); + $form->add_rules_from($group); + return $form; + } + + static function get_add_form_admin() { + $form = new Forge("admin/users/add_group", "", "post", array("id" => "g-add-group-form")); + $form->set_attr('class', "g-narrow"); + $form_group = $form->group("add_group")->label(t("Add Group")); + $form_group->input("name")->label(t("Name"))->id("g-name"); + $form_group->inputs["name"]->error_messages( + "in_use", t("There is already a group with that name")); + $form_group->submit("")->value(t("Add Group")); + $group = ORM::factory("group"); + $form->add_rules_from($group); + return $form; + } + + static function get_delete_form_admin($group) { + $form = new Forge("admin/users/delete_group/$group->id", "", "post", + array("id" => "g-delete-group-form")); + $form_group = $form->group("delete_group")->label( + t("Are you sure you want to delete group %group_name?", array("group_name" => $group->name))); + $form_group->submit("")->value(t("Delete")); + return $form; + } + + /** + * Create a new group. + * + * @param string $name + * @return Group_Core + */ + static function create($name) { + return Identity::instance()->create_group($name); + } + + /** + * The group of all possible visitors. This includes the guest user. + * + * @return Group_Core + */ + static function everybody() { + return Identity::instance()->everybody(); + } + + /** + * The group of all logged-in visitors. This does not include guest users. + * + * @return Group_Core + */ + static function registered_users() { + return Identity::instance()->everybody(); + } + + /** + * Look up a group by id. + * @param integer $id the user id + * @return Group_Model the group object, or null if the id was invalid. + */ + static function lookup($id) { + return Identity::instance()->lookup_group($id); + } + + /** + * Look up a group by name. + * @param integer $id the group name + * @return Group_Core the group object, or null if the name was invalid. + */ + static function lookup_by_name($name) { + return Identity::instance()->lookup_group_by_name($name); + } + + /** + * List the groups + * @param mixed options to apply to the selection of the user + * @return array the group list. + */ + static function groups($filter=array()) { + return Identity::instance()->list_groups($filter); + } +} -- cgit v1.2.3