[cvs] [Wiki] created: HordeGroupAPI
Ben Chavet
ben at horde.org
Thu Dec 7 19:33:01 PST 2006
ben Thu, 07 Dec 2006 19:33:00 -0800
Created page: http://wiki.horde.org/HordeGroupAPI
[[toc]]
+ Horde Group API
This document is intended to clarify the Horde Group API. Primarily in order to write a new LDAP driver as discussed by the Bens in IRC, but also to provide a solid target for applications to move toward.
---
++ Abstract
In its simplest terms a group consists of an ID and a Name. The ID is unique to that group and is unchanging. The name is a human-friendly name that can be changed as desired. The source and/or format of the group ID should not be of concern to the application using it, and should always be obtained/modified/stored through the group API calls. The group ID is the **only** acceptable method as to refer to a group, as it is guaranteed to be unique (uniqueness being the job of the driver). The group name is strictly for interface use.
A group can also have a parent and multiple children. All references to parents and children are to be made through API calls. In particular {{getParent()}}, {{getChildren()}}, and {{getParentList()}}. Again, it is of no concern to the application //how// these relationships are maintained, but only that they exist and are free to be used.
++ Standards
In order to help keep concepts straight, the following standards should be used
* **$gid** -- Group ID
* **$group** -- Group Object
* **$name** -- Group Name
++ Classes
+++ Group
++++ newGroup($name, $parent = DATATREE_ROOT)
++++ getGroup($gid)
++++ getGroupById($gid)
++++ getGUID($group)
++++ addGroup($group)
++++ updateGroup($group)
++++ renameGroup($group, $newName)
++++ removeGroup($group, $force = false)
++++ getGroupName($gid)
++++ getGroupShortName($group)
++++ getGroupId($group)
++++ exists($gid)
++++ getGroupParents($gid)
++++ getGroupParent($gid)
++++ getGroupParentList($gid)
++++ listGroups($refresh = false)
++++ listUsers($gid)
++++ listAllUsers($gid)
++++ getGroupMembership($user, $parentGroups = false)
++++ userIsInGroup($user, $gid, $subgroups = true)
++++ getLevel($gid)
+++ !DatatreeObject_Group
++++ setGroupOb(&$groupOb)
++++ getId()
++++ save()
++++ addUser($username, $update = true)
++++ removeUser($username, $update = true)
++++ listUser()
++++ listAllUsers()
++++ getAuditLog()
++++ clearAuditLog()
More information about the cvs
mailing list