groupManager = $groupManager; $this->userSession = $userSession; $this->isAdmin = $isAdmin; $this->l10n = $l10n; } /** * @NoAdminRequired * * @param string $pattern * @param bool $filterGroups * @return DataResponse */ public function index($pattern = '', $filterGroups = false) { $groupPattern = $filterGroups ? $pattern : ''; $groupsInfo = new \OC\Group\MetaData($this->userSession->getUser()->getUID(), $this->isAdmin, $this->groupManager); $groupsInfo->setSorting($groupsInfo::SORT_USERCOUNT); list($adminGroups, $groups) = $groupsInfo->get($groupPattern, $pattern); return new DataResponse( array( 'data' => array('adminGroups' => $adminGroups, 'groups' => $groups) ) ); } /** * @param string $id * @return DataResponse */ public function create($id) { if($this->groupManager->groupExists($id)) { return new DataResponse( array( 'message' => (string)$this->l10n->t('Group already exists.') ), Http::STATUS_CONFLICT ); } if($this->groupManager->createGroup($id)) { return new DataResponse( array( 'groupname' => $id ), Http::STATUS_CREATED ); } return new DataResponse( array( 'status' => 'error', 'data' => array( 'message' => (string)$this->l10n->t('Unable to add group.') ) ), Http::STATUS_FORBIDDEN ); } /** * @param string $id * @return DataResponse */ public function destroy($id) { $group = $this->groupManager->get($id); if ($group) { if ($group->delete()) { return new DataResponse( array( 'status' => 'success', 'data' => array( 'groupname' => $id ) ), Http::STATUS_NO_CONTENT ); } } return new DataResponse( array( 'status' => 'error', 'data' => array( 'message' => (string)$this->l10n->t('Unable to delete group.') ), ), Http::STATUS_FORBIDDEN ); } }