diff options
author | Robin Appelman <icewind@owncloud.com> | 2014-07-16 14:25:31 +0200 |
---|---|---|
committer | Robin Appelman <icewind@owncloud.com> | 2014-07-16 14:25:31 +0200 |
commit | 94fa21d146246a2f1d7cafbd6b1e38ba897694bd (patch) | |
tree | 425402be0cb02d874e5b866018badf097cc51474 /lib/public | |
parent | 4d74aa09bf7102a1104549b08c6bebe2382ec0cd (diff) | |
download | nextcloud-server-94fa21d146246a2f1d7cafbd6b1e38ba897694bd.tar.gz nextcloud-server-94fa21d146246a2f1d7cafbd6b1e38ba897694bd.zip |
Add group management to the public api
Diffstat (limited to 'lib/public')
-rw-r--r-- | lib/public/igroup.php | 81 | ||||
-rw-r--r-- | lib/public/igroupmanager.php | 83 | ||||
-rw-r--r-- | lib/public/iservercontainer.php | 7 |
3 files changed, 171 insertions, 0 deletions
diff --git a/lib/public/igroup.php b/lib/public/igroup.php new file mode 100644 index 00000000000..392ac5d92b9 --- /dev/null +++ b/lib/public/igroup.php @@ -0,0 +1,81 @@ +<?php + +/** + * Copyright (c) 2014 Robin Appelman <icewind@owncloud.com> + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OCP; + +interface IGroup { + /** + * @return string + */ + public function getGID(); + + /** + * get all users in the group + * + * @return \OCP\IUser[] + */ + public function getUsers(); + + /** + * check if a user is in the group + * + * @param \OCP\IUser $user + * @return bool + */ + public function inGroup($user); + + /** + * add a user to the group + * + * @param \OCP\IUser $user + */ + public function addUser($user); + + /** + * remove a user from the group + * + * @param \OCP\IUser $user + */ + public function removeUser($user); + + /** + * search for users in the group by userid + * + * @param string $search + * @param int $limit + * @param int $offset + * @return \OCP\IUser[] + */ + public function searchUsers($search, $limit = null, $offset = null); + + /** + * returns the number of users matching the search string + * + * @param string $search + * @return int|bool + */ + public function count($search = ''); + + /** + * search for users in the group by displayname + * + * @param string $search + * @param int $limit + * @param int $offset + * @return \OCP\IUser[] + */ + public function searchDisplayName($search, $limit = null, $offset = null); + + /** + * delete the group + * + * @return bool + */ + public function delete(); +} diff --git a/lib/public/igroupmanager.php b/lib/public/igroupmanager.php new file mode 100644 index 00000000000..dc69044c490 --- /dev/null +++ b/lib/public/igroupmanager.php @@ -0,0 +1,83 @@ +<?php + +/** + * Copyright (c) 2014 Robin Appelman <icewind@owncloud.com> + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OCP; + +/** + * Class Manager + * + * Hooks available in scope \OC\Group: + * - preAddUser(\OC\Group\Group $group, \OC\User\User $user) + * - postAddUser(\OC\Group\Group $group, \OC\User\User $user) + * - preRemoveUser(\OC\Group\Group $group, \OC\User\User $user) + * - postRemoveUser(\OC\Group\Group $group, \OC\User\User $user) + * - preDelete(\OC\Group\Group $group) + * - postDelete(\OC\Group\Group $group) + * - preCreate(string $groupId) + * - postCreate(\OC\Group\Group $group) + * + * @package OC\Group + */ +interface IGroupManager { + /** + * @param \OCP\UserInterface $backend + */ + public function addBackend($backend); + + public function clearBackends(); + + /** + * @param string $gid + * @return \OCP\IGroup + */ + public function get($gid); + + /** + * @param string $gid + * @return bool + */ + public function groupExists($gid); + + /** + * @param string $gid + * @return \OCP\IGroup + */ + public function createGroup($gid); + + /** + * @param string $search + * @param int $limit + * @param int $offset + * @return \OCP\IGroup[] + */ + public function search($search, $limit = null, $offset = null); + + /** + * @param \OCP\IUser $user + * @return \OCP\IGroup[] + */ + public function getUserGroups($user); + + /** + * @param \OCP\IUser $user + * @return array with group names + */ + public function getUserGroupIds($user); + + /** + * get a list of all display names in a group + * + * @param string $gid + * @param string $search + * @param int $limit + * @param int $offset + * @return array an array of display names (value) and user ids (key) + */ + public function displayNamesInGroup($gid, $search = '', $limit = -1, $offset = 0); +} diff --git a/lib/public/iservercontainer.php b/lib/public/iservercontainer.php index f3dbc18322e..9c39ac7ae73 100644 --- a/lib/public/iservercontainer.php +++ b/lib/public/iservercontainer.php @@ -100,6 +100,13 @@ interface IServerContainer { function getUserManager(); /** + * Returns a group manager + * + * @return \OCP\IGroupManager + */ + function getGroupManager(); + + /** * Returns the user session * * @return \OCP\IUserSession |