Return groups displayname in provisioning api
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
This commit is contained in:
parent
3cac7911d5
commit
5f38cfbc80
3 changed files with 59 additions and 0 deletions
|
@ -34,6 +34,7 @@ return [
|
|||
|
||||
// Groups
|
||||
['root' => '/cloud', 'name' => 'Groups#getGroups', 'url' => '/groups', 'verb' => 'GET'],
|
||||
['root' => '/cloud', 'name' => 'Groups#getGroupsDetails', 'url' => '/groups/details', 'verb' => 'GET'],
|
||||
['root' => '/cloud', 'name' => 'Groups#getGroup', 'url' => '/groups/{groupId}', 'verb' => 'GET'],
|
||||
['root' => '/cloud', 'name' => 'Groups#addGroup', 'url' => '/groups', 'verb' => 'POST'],
|
||||
['root' => '/cloud', 'name' => 'Groups#deleteGroup', 'url' => '/groups/{groupId}', 'verb' => 'DELETE'],
|
||||
|
|
|
@ -96,6 +96,33 @@ class GroupsController extends OCSController {
|
|||
return new DataResponse(['groups' => $groups]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 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
|
||||
*
|
||||
|
|
|
@ -85,6 +85,10 @@ class GroupsControllerTest extends \Test\TestCase {
|
|||
$group
|
||||
->method('getGID')
|
||||
->willReturn($gid);
|
||||
$group
|
||||
->method('getDisplayName')
|
||||
->willReturn($gid.'-name');
|
||||
|
||||
return $group;
|
||||
}
|
||||
|
||||
|
@ -165,6 +169,33 @@ class GroupsControllerTest extends \Test\TestCase {
|
|||
|
||||
$result = $this->api->getGroups($search, $limit, $offset);
|
||||
$this->assertEquals(['groups' => ['group1', 'group2']], $result->getData());
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider dataGetGroups
|
||||
*
|
||||
* @param string|null $search
|
||||
* @param int|null $limit
|
||||
* @param int|null $offset
|
||||
*/
|
||||
public function testGetGroupsDetails($search, $limit, $offset) {
|
||||
$groups = [$this->createGroup('group1'), $this->createGroup('group2')];
|
||||
|
||||
$search = $search === null ? '' : $search;
|
||||
|
||||
$this->groupManager
|
||||
->expects($this->once())
|
||||
->method('search')
|
||||
->with($search, $limit, $offset)
|
||||
->willReturn($groups);
|
||||
|
||||
$result = $this->api->getGroupsDetails($search, $limit, $offset);
|
||||
$this->assertEquals(['groups' => [
|
||||
Array('id' => 'group1', 'displayname' => 'group1-name'),
|
||||
Array('id' => 'group2', 'displayname' => 'group2-name')
|
||||
]], $result->getData());
|
||||
|
||||
}
|
||||
|
||||
public function testGetGroupAsSubadmin() {
|
||||
|
|
Loading…
Reference in a new issue