* @author Jörn Friedrich Dreyer * @author Morris Jobke * * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License, version 3, * as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License, version 3, * along with this program. If not, see * */ /** * Public interface of ownCloud for apps to use. * Group Class. * */ // use OCP namespace for all classes that are considered public. // This means that they should be used by apps instead of the internal ownCloud classes namespace OCP; /** * TODO actually this is a IGroupBackend * * @package OCP * @since 4.5.0 */ interface GroupInterface { /** * actions that user backends can define */ const CREATE_GROUP = 0x00000001; const DELETE_GROUP = 0x00000010; const ADD_TO_GROUP = 0x00000100; const REMOVE_FROM_GOUP = 0x00001000; // oops const REMOVE_FROM_GROUP = 0x00001000; //OBSOLETE const GET_DISPLAYNAME = 0x00010000; const COUNT_USERS = 0x00100000; const GROUP_DETAILS = 0x01000000; /** * Check if backend implements actions * @param int $actions bitwise-or'ed actions * @return boolean * @since 4.5.0 * * Returns the supported actions as int to be * compared with \OC_Group_Backend::CREATE_GROUP etc. */ public function implementsActions($actions); /** * is user in group? * @param string $uid uid of the user * @param string $gid gid of the group * @return bool * @since 4.5.0 * * Checks whether the user is member of a group or not. */ public function inGroup($uid, $gid); /** * Get all groups a user belongs to * @param string $uid Name of the user * @return array an array of group names * @since 4.5.0 * * This function fetches all groups a user belongs to. It does not check * if the user exists at all. */ public function getUserGroups($uid); /** * get a list of all groups * @param string $search * @param int $limit * @param int $offset * @return array an array of group names * @since 4.5.0 * * Returns a list with all groups */ public function getGroups($search = '', $limit = -1, $offset = 0); /** * check if a group exists * @param string $gid * @return bool * @since 4.5.0 */ public function groupExists($gid); /** * get a list of all users in a group * @param string $gid * @param string $search * @param int $limit * @param int $offset * @return array an array of user ids * @since 4.5.0 */ public function usersInGroup($gid, $search = '', $limit = -1, $offset = 0); }