* @throws OCSException
*/
public function getUser($userId) {
+ $data = $this->getUserData($userId);
+ return new DataResponse($data);
+ }
+
+ /**
+ * @NoAdminRequired
+ * @NoSubAdminRequired
+ *
+ * gets user info from the currently logged in user
+ *
+ * @return DataResponse
+ * @throws OCSException
+ */
+ public function getCurrentUser() {
+ $user = $this->userSession->getUser();
+ if ($user) {
+ $data = $this->getUserData($user->getUID());
+ // rename "displayname" to "display-name" only for this call to keep
+ // the API stable.
+ $data['display-name'] = $data['displayname'];
+ unset($data['displayname']);
+ return new DataResponse($data);
+
+ }
+
+ throw new OCSException('', \OCP\API::RESPOND_UNAUTHORISED);
+ }
+
+ /**
+ * creates a array with all user data
+ *
+ * @param $userId
+ * @return array
+ * @throws OCSException
+ */
+ protected function getUserData($userId) {
$currentLoggedInUser = $this->userSession->getUser();
$data = [];
$data['webpage'] = $userAccount[\OC\Accounts\AccountManager::PROPERTY_WEBSITE]['value'];
$data['twitter'] = $userAccount[\OC\Accounts\AccountManager::PROPERTY_TWITTER]['value'];
- return new DataResponse($data);
- }
-
- /**
- * @NoAdminRequired
- * @NoSubAdminRequired
- *
- * gets user info from the currently logged in user
- *
- * @return DataResponse
- * @throws OCSException
- */
- public function getCurrentUser() {
- $user = $this->userSession->getUser();
- if ($user) {
- $result = $this->getUser($user->getUID());
- // rename "displayname" to "display-name" only for this call to keep
- // the API stable.
- $result['display-name'] = $result['displayname'];
- unset($result['displayname']);
- return $result;
-
- }
-
- throw new OCSException('', \OCP\API::RESPOND_UNAUTHORISED);
+ return $data;
}
/**
$this->api->getUser('UserToGet');
}
- public function testGetUserAsAdmin() {
+ public function testGetUserDataAsAdmin() {
$loggedInUser = $this->getMockBuilder('OCP\IUser')
->disableOriginalConstructor()
->getMock();
'webpage' => 'website',
'twitter' => 'twitter'
];
- $this->assertEquals($expected, $this->api->getUser('UserToGet')->getData());
+ $this->assertEquals($expected, $this->invokePrivate($this->api, 'getUserData', ['UserToGet']));
}
- public function testGetUserAsSubAdminAndUserIsAccessible() {
+ public function testGetUserDataAsSubAdminAndUserIsAccessible() {
$loggedInUser = $this->getMockBuilder('OCP\IUser')
->disableOriginalConstructor()
->getMock();
'webpage' => 'website',
'twitter' => 'twitter'
];
- $this->assertEquals($expected, $this->api->getUser('UserToGet')->getData());
+ $this->assertEquals($expected, $this->invokePrivate($this->api, 'getUserData', ['UserToGet']));
}
* @expectedException \OCP\AppFramework\OCS\OCSException
* @expectedExceptionCode 997
*/
- public function testGetUserAsSubAdminAndUserIsNotAccessible() {
+ public function testGetUserDataAsSubAdminAndUserIsNotAccessible() {
$loggedInUser = $this->getMockBuilder('OCP\IUser')
->disableOriginalConstructor()
->getMock();
->method('getSubAdmin')
->will($this->returnValue($subAdminManager));
- $this->api->getUser('UserToGet');
+ $this->invokePrivate($this->api, 'getUserData', ['UserToGet']);
}
- public function testGetUserAsSubAdminSelfLookup() {
+ public function testGetUserDataAsSubAdminSelfLookup() {
$loggedInUser = $this->getMockBuilder('OCP\IUser')
->disableOriginalConstructor()
->getMock();
'webpage' => 'website',
'twitter' => 'twitter'
];
- $this->assertEquals($expected, $this->api->getUser('subadmin')->getData());
+ $this->assertEquals($expected, $this->invokePrivate($this->api, 'getUserData', ['subadmin']));
}
public function testEditUserRegularUserSelfEditChangeDisplayName() {
$this->accountManager,
$this->logger,
])
- ->setMethods(['getUser'])
+ ->setMethods(['getUserData'])
->getMock();
- $api->expects($this->once())->method('getUser')->with('UID')
+ $api->expects($this->once())->method('getUserData')->with('UID')
->willReturn(
[
'id' => 'UID',
'display-name' => 'Demo User'
];
- $this->assertSame($expected, $api->getCurrentUser());
+ $this->assertSame($expected, $api->getCurrentUser()->getData());
}
/**
}
+ public function testGetUser() {
+ /** @var UsersController | PHPUnit_Framework_MockObject_MockObject $api */
+ $api = $this->getMockBuilder('OCA\Provisioning_API\Controller\UsersController')
+ ->setConstructorArgs([
+ 'provisioning_api',
+ $this->request,
+ $this->userManager,
+ $this->config,
+ $this->groupManager,
+ $this->userSession,
+ $this->accountManager,
+ $this->logger,
+ ])
+ ->setMethods(['getUserData'])
+ ->getMock();
+
+ $expected = [
+ 'id' => 'UID',
+ 'enabled' => 'true',
+ 'quota' => ['DummyValue'],
+ 'email' => 'demo@owncloud.org',
+ 'phone' => 'phone',
+ 'address' => 'address',
+ 'webpage' => 'website',
+ 'twitter' => 'twitter',
+ 'displayname' => 'Demo User'
+ ];
+
+ $api->expects($this->once())->method('getUserData')
+ ->with('uid')
+ ->willReturn($expected);
+
+ $this->assertSame($expected, $api->getUser('uid')->getData());
+ }
+
}