Skip to content
Snippets Groups Projects
Commit 2e94d34d authored by Thomas Müller's avatar Thomas Müller
Browse files

Fix group principal

parent 29820176
No related branches found
No related tags found
No related merge requests found
......@@ -49,6 +49,9 @@ class Principal implements BackendInterface {
/** @var string */
private $principalPrefix;
/** @var bool */
private $hasGroups;
/**
* @param IUserManager $userManager
* @param IGroupManager $groupManager
......@@ -60,6 +63,7 @@ class Principal implements BackendInterface {
$this->userManager = $userManager;
$this->groupManager = $groupManager;
$this->principalPrefix = trim($principalPrefix, '/');
$this->hasGroups = ($principalPrefix === 'principals/users/');
}
/**
......@@ -141,13 +145,15 @@ class Principal implements BackendInterface {
throw new Exception('Principal not found');
}
$groups = $this->groupManager->getUserGroups($user);
$groups = array_map(function($group) {
/** @var IGroup $group */
return $this->principalPrefix . '/' . $group->getGID();
}, $groups);
if ($this->hasGroups) {
$groups = $this->groupManager->getUserGroups($user);
$groups = array_map(function($group) {
/** @var IGroup $group */
return 'principals/groups/' . $group->getGID();
}, $groups);
return $groups;
return $groups;
}
}
return [];
}
......
......@@ -202,16 +202,26 @@ class Principal extends TestCase {
public function testGetGroupMembership() {
$fooUser = $this->getMockBuilder('\OC\User\User')
->disableOriginalConstructor()->getMock();
$group = $this->getMockBuilder('\OCP\IGroup')
->disableOriginalConstructor()->getMock();
$group->expects($this->once())
->method('getGID')
->willReturn('group1');
$this->userManager
->expects($this->once())
->method('get')
->with('foo')
->willReturn($fooUser);
$this->groupManager
->expects($this->once())
->method('getUserGroups')
->willReturn([]);
->willReturn([
$group
]);
$expectedResponse = [];
$expectedResponse = [
'principals/groups/group1'
];
$response = $this->connector->getGroupMembership('principals/users/foo');
$this->assertSame($expectedResponse, $response);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment