add groups to user info output

Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
This commit is contained in:
Bjoern Schiessle 2017-02-09 16:12:57 +01:00
parent bf88060a98
commit 2ca8339d01
No known key found for this signature in database
GPG Key ID: 2378A753E2BF04F6
2 changed files with 36 additions and 3 deletions

View File

@ -252,6 +252,11 @@ class UsersController extends OCSController {
} }
$userAccount = $this->accountManager->getUser($targetUserObject); $userAccount = $this->accountManager->getUser($targetUserObject);
$groups = $this->groupManager->getUserGroups($targetUserObject);
$gids = [];
foreach ($groups as $group) {
$gids[] = $group->getDisplayName();
}
// Find the data // Find the data
$data['id'] = $targetUserObject->getUID(); $data['id'] = $targetUserObject->getUID();
@ -262,6 +267,7 @@ class UsersController extends OCSController {
$data['address'] = $userAccount[\OC\Accounts\AccountManager::PROPERTY_ADDRESS]['value']; $data['address'] = $userAccount[\OC\Accounts\AccountManager::PROPERTY_ADDRESS]['value'];
$data['webpage'] = $userAccount[\OC\Accounts\AccountManager::PROPERTY_WEBSITE]['value']; $data['webpage'] = $userAccount[\OC\Accounts\AccountManager::PROPERTY_WEBSITE]['value'];
$data['twitter'] = $userAccount[\OC\Accounts\AccountManager::PROPERTY_TWITTER]['value']; $data['twitter'] = $userAccount[\OC\Accounts\AccountManager::PROPERTY_TWITTER]['value'];
$data['groups'] = $gids;
return $data; return $data;
} }

View File

@ -635,6 +635,9 @@ class UsersControllerTest extends OriginalTest {
} }
public function testGetUserDataAsAdmin() { public function testGetUserDataAsAdmin() {
$group = $this->getMockBuilder(IGroup::class)
->disableOriginalConstructor()
->getMock();
$loggedInUser = $this->getMockBuilder('OCP\IUser') $loggedInUser = $this->getMockBuilder('OCP\IUser')
->disableOriginalConstructor() ->disableOriginalConstructor()
->getMock(); ->getMock();
@ -662,6 +665,19 @@ class UsersControllerTest extends OriginalTest {
->method('isAdmin') ->method('isAdmin')
->with('admin') ->with('admin')
->will($this->returnValue(true)); ->will($this->returnValue(true));
$this->groupManager
->expects($this->any())
->method('getUserGroups')
->willReturn([$group, $group, $group]);
$group->expects($this->at(0))
->method('getDisplayName')
->willReturn('group0');
$group->expects($this->at(1))
->method('getDisplayName')
->willReturn('group1');
$group->expects($this->at(2))
->method('getDisplayName')
->willReturn('group2');
$this->accountManager->expects($this->any())->method('getUser') $this->accountManager->expects($this->any())->method('getUser')
->with($targetUser) ->with($targetUser)
->willReturn( ->willReturn(
@ -700,7 +716,8 @@ class UsersControllerTest extends OriginalTest {
'phone' => 'phone', 'phone' => 'phone',
'address' => 'address', 'address' => 'address',
'webpage' => 'website', 'webpage' => 'website',
'twitter' => 'twitter' 'twitter' => 'twitter',
'groups' => ['group0', 'group1', 'group2']
]; ];
$this->assertEquals($expected, $this->invokePrivate($this->api, 'getUserData', ['UserToGet'])); $this->assertEquals($expected, $this->invokePrivate($this->api, 'getUserData', ['UserToGet']));
} }
@ -734,6 +751,10 @@ class UsersControllerTest extends OriginalTest {
->method('isAdmin') ->method('isAdmin')
->with('subadmin') ->with('subadmin')
->will($this->returnValue(false)); ->will($this->returnValue(false));
$this->groupManager
->expects($this->any())
->method('getUserGroups')
->willReturn([]);
$subAdminManager = $this->getMockBuilder('OC\SubAdmin') $subAdminManager = $this->getMockBuilder('OC\SubAdmin')
->disableOriginalConstructor() ->disableOriginalConstructor()
->getMock(); ->getMock();
@ -784,7 +805,8 @@ class UsersControllerTest extends OriginalTest {
'phone' => 'phone', 'phone' => 'phone',
'address' => 'address', 'address' => 'address',
'webpage' => 'website', 'webpage' => 'website',
'twitter' => 'twitter' 'twitter' => 'twitter',
'groups' => []
]; ];
$this->assertEquals($expected, $this->invokePrivate($this->api, 'getUserData', ['UserToGet'])); $this->assertEquals($expected, $this->invokePrivate($this->api, 'getUserData', ['UserToGet']));
} }
@ -872,6 +894,10 @@ class UsersControllerTest extends OriginalTest {
->expects($this->once()) ->expects($this->once())
->method('getSubAdmin') ->method('getSubAdmin')
->will($this->returnValue($subAdminManager)); ->will($this->returnValue($subAdminManager));
$this->groupManager
->expects($this->any())
->method('getUserGroups')
->willReturn([]);
$this->api $this->api
->expects($this->once()) ->expects($this->once())
->method('fillStorageInfo') ->method('fillStorageInfo')
@ -908,7 +934,8 @@ class UsersControllerTest extends OriginalTest {
'phone' => 'phone', 'phone' => 'phone',
'address' => 'address', 'address' => 'address',
'webpage' => 'website', 'webpage' => 'website',
'twitter' => 'twitter' 'twitter' => 'twitter',
'groups' => []
]; ];
$this->assertEquals($expected, $this->invokePrivate($this->api, 'getUserData', ['subadmin'])); $this->assertEquals($expected, $this->invokePrivate($this->api, 'getUserData', ['subadmin']));
} }