summaryrefslogtreecommitdiffstats
path: root/apps/provisioning_api/lib/Controller/GroupsController.php
diff options
context:
space:
mode:
Diffstat (limited to 'apps/provisioning_api/lib/Controller/GroupsController.php')
-rw-r--r--apps/provisioning_api/lib/Controller/GroupsController.php27
1 files changed, 27 insertions, 0 deletions
diff --git a/apps/provisioning_api/lib/Controller/GroupsController.php b/apps/provisioning_api/lib/Controller/GroupsController.php
index 8aed50bf049..d6f2d9f3391 100644
--- a/apps/provisioning_api/lib/Controller/GroupsController.php
+++ b/apps/provisioning_api/lib/Controller/GroupsController.php
@@ -97,6 +97,33 @@ class GroupsController extends OCSController {
}
/**
+ * returns a list of groups details with ids and displaynames
+ *
+ * @NoAdminRequired
+ *
+ * @param string $search
+ * @param int $limit
+ * @param int $offset
+ * @return DataResponse
+ */
+ public function getGroupsDetails(string $search = '', $limit = null, $offset = null): DataResponse {
+ if ($limit !== null) {
+ $limit = (int)$limit;
+ }
+ if ($offset !== null) {
+ $offset = (int)$offset;
+ }
+
+ $groups = $this->groupManager->search($search, $limit, $offset);
+ $groups = array_map(function($group) {
+ /** @var IGroup $group */
+ return ['id' => $group->getGID(), 'displayname' => $group->getDisplayName()];
+ }, $groups);
+
+ return new DataResponse(['groups' => $groups]);
+ }
+
+ /**
* returns an array of users in the group specified
*
* @NoAdminRequired