aboutsummaryrefslogtreecommitdiffstats
path: root/apps/provisioning_api
diff options
context:
space:
mode:
authorRoeland Jago Douma <roeland@famdouma.nl>2016-08-11 19:49:45 +0200
committerRoeland Jago Douma <roeland@famdouma.nl>2016-08-14 18:34:02 +0200
commit8f4adebab7cf3133bb33b8081fbdf2c6e2e8e549 (patch)
treeb099b2a29cd422114014d535f7830ae0aeb0643e /apps/provisioning_api
parent432e7c93c6dad564abbaec1e3d374f73653d7ba6 (diff)
downloadnextcloud-server-8f4adebab7cf3133bb33b8081fbdf2c6e2e8e549.tar.gz
nextcloud-server-8f4adebab7cf3133bb33b8081fbdf2c6e2e8e549.zip
Move Users to OCSController
Diffstat (limited to 'apps/provisioning_api')
-rw-r--r--apps/provisioning_api/appinfo/routes.php38
-rw-r--r--apps/provisioning_api/lib/Controller/UsersController.php (renamed from apps/provisioning_api/lib/Users.php)379
-rw-r--r--apps/provisioning_api/tests/Controller/UsersControllerTest.php (renamed from apps/provisioning_api/tests/UsersTest.php)683
3 files changed, 475 insertions, 625 deletions
diff --git a/apps/provisioning_api/appinfo/routes.php b/apps/provisioning_api/appinfo/routes.php
index dbc0321efb2..473ae2ff716 100644
--- a/apps/provisioning_api/appinfo/routes.php
+++ b/apps/provisioning_api/appinfo/routes.php
@@ -39,31 +39,25 @@ $app->registerRoutes($this, [
['root' => '/cloud', 'name' => 'Groups#addGroup', 'url' => '/groups', 'verb' => 'POST'],
['root' => '/cloud', 'name' => 'Groups#deleteGroup', 'url' => '/groups/{groupId}', 'verb' => 'DELETE'],
['root' => '/cloud', 'name' => 'Groups#getSubAdminsOfGroup', 'url' => '/groups/{groupId}/subadmins', 'verb' => 'GET'],
+
+ //Users
+ ['root' => '/cloud', 'name' => 'Users#getUsers', 'url' => '/users', 'verb' => 'GET'],
+ ['root' => '/cloud', 'name' => 'Users#addUser', 'url' => '/users', 'verb' => 'POST'],
+ ['root' => '/cloud', 'name' => 'Users#getUser', 'url' => '/users/{userId}', 'verb' => 'GET'],
+ ['root' => '/cloud', 'name' => 'Users#editUser', 'url' => '/users/{userId}', 'verb' => 'PUT'],
+ ['root' => '/cloud', 'name' => 'Users#deleteUser', 'url' => '/users/{userId}', 'verb' => 'DELETE'],
+ ['root' => '/cloud', 'name' => 'Users#enableUser', 'url' => '/users/{userId}/enable', 'verb' => 'PUT'],
+ ['root' => '/cloud', 'name' => 'Users#disableUser', 'url' => '/users/{userId}/disable', 'verb' => 'PUT'],
+ ['root' => '/cloud', 'name' => 'Users#getUsersGroups', 'url' => '/users/{userId}/groups', 'verb' => 'GET'],
+ ['root' => '/cloud', 'name' => 'Users#addToGroup', 'url' => '/users/{userId}/groups', 'verb' => 'POST'],
+ ['root' => '/cloud', 'name' => 'Users#removeFromGroup', 'url' => '/users/{userId}/groups', 'verb' => 'DELETE'],
+ ['root' => '/cloud', 'name' => 'Users#getUserSubAdminGroups', 'url' => '/users/{userId}/subadmins', 'verb' => 'GET'],
+ ['root' => '/cloud', 'name' => 'Users#addSubAdmin', 'url' => '/users/{userId}/subadmins', 'verb' => 'POST'],
+ ['root' => '/cloud', 'name' => 'Users#removeSubAdmin', 'url' => '/users/{userId}/subadmins', 'verb' => 'DELETE'],
+
],
]);
-// Users
-$users = new Users(
- \OC::$server->getUserManager(),
- \OC::$server->getConfig(),
- \OC::$server->getGroupManager(),
- \OC::$server->getUserSession(),
- \OC::$server->getLogger()
-);
-API::register('get', '/cloud/users', [$users, 'getUsers'], 'provisioning_api', API::SUBADMIN_AUTH);
-API::register('post', '/cloud/users', [$users, 'addUser'], 'provisioning_api', API::SUBADMIN_AUTH);
-API::register('get', '/cloud/users/{userid}', [$users, 'getUser'], 'provisioning_api', API::USER_AUTH);
-API::register('put', '/cloud/users/{userid}', [$users, 'editUser'], 'provisioning_api', API::USER_AUTH);
-API::register('delete', '/cloud/users/{userid}', [$users, 'deleteUser'], 'provisioning_api', API::SUBADMIN_AUTH);
-API::register('put', '/cloud/users/{userid}/enable', [$users, 'enableUser'], 'provisioning_api', API::SUBADMIN_AUTH);
-API::register('put', '/cloud/users/{userid}/disable', [$users, 'disableUser'], 'provisioning_api', API::SUBADMIN_AUTH);
-API::register('get', '/cloud/users/{userid}/groups', [$users, 'getUsersGroups'], 'provisioning_api', API::USER_AUTH);
-API::register('post', '/cloud/users/{userid}/groups', [$users, 'addToGroup'], 'provisioning_api', API::SUBADMIN_AUTH);
-API::register('delete', '/cloud/users/{userid}/groups', [$users, 'removeFromGroup'], 'provisioning_api', API::SUBADMIN_AUTH);
-API::register('post', '/cloud/users/{userid}/subadmins', [$users, 'addSubAdmin'], 'provisioning_api', API::ADMIN_AUTH);
-API::register('delete', '/cloud/users/{userid}/subadmins', [$users, 'removeSubAdmin'], 'provisioning_api', API::ADMIN_AUTH);
-API::register('get', '/cloud/users/{userid}/subadmins', [$users, 'getUserSubAdminGroups'], 'provisioning_api', API::ADMIN_AUTH);
-
// Apps
$apps = new Apps(
\OC::$server->getAppManager(),
diff --git a/apps/provisioning_api/lib/Users.php b/apps/provisioning_api/lib/Controller/UsersController.php
index 0e5a8043e8a..29d449e97d6 100644
--- a/apps/provisioning_api/lib/Users.php
+++ b/apps/provisioning_api/lib/Controller/UsersController.php
@@ -27,17 +27,23 @@
*
*/
-namespace OCA\Provisioning_API;
+namespace OCA\Provisioning_API\Controller;
use \OC_Helper;
+use OCP\AppFramework\Http\DataResponse;
+use OCP\AppFramework\OCS\OCSException;
+use OCP\AppFramework\OCS\OCSForbiddenException;
+use OCP\AppFramework\OCS\OCSNotFoundException;
+use OCP\AppFramework\OCSController;
use OCP\Files\NotFoundException;
use OCP\IConfig;
use OCP\IGroupManager;
use OCP\ILogger;
+use OCP\IRequest;
use OCP\IUserManager;
use OCP\IUserSession;
-class Users {
+class UsersController extends OCSController {
/** @var IUserManager */
private $userManager;
@@ -51,17 +57,23 @@ class Users {
private $logger;
/**
+ * @param string $appName
+ * @param IRequest $request
* @param IUserManager $userManager
* @param IConfig $config
* @param IGroupManager $groupManager
* @param IUserSession $userSession
* @param ILogger $logger
*/
- public function __construct(IUserManager $userManager,
+ public function __construct($appName,
+ IRequest $request,
+ IUserManager $userManager,
IConfig $config,
IGroupManager $groupManager,
IUserSession $userSession,
ILogger $logger) {
+ parent::__construct($appName, $request);
+
$this->userManager = $userManager;
$this->config = $config;
$this->groupManager = $groupManager;
@@ -70,20 +82,17 @@ class Users {
}
/**
+ * @NoAdminRequired
+ *
* returns a list of users
*
- * @return \OC\OCS\Result
+ * @param string $search
+ * @param int $limit
+ * @param int $offset
+ * @return DataResponse
*/
- public function getUsers() {
- $search = !empty($_GET['search']) ? $_GET['search'] : '';
- $limit = !empty($_GET['limit']) ? $_GET['limit'] : null;
- $offset = !empty($_GET['offset']) ? $_GET['offset'] : null;
-
- // Check if user is logged in
+ public function getUsers($search = '', $limit = null, $offset = null) {
$user = $this->userSession->getUser();
- if ($user === null) {
- return new \OC\OCS\Result(null, \OCP\API::RESPOND_UNAUTHORISED);
- }
// Admin? Or SubAdmin?
$uid = $user->getUID();
@@ -106,89 +115,85 @@ class Users {
}
$users = array_slice($users, $offset, $limit);
- } else {
- return new \OC\OCS\Result(null, \OCP\API::RESPOND_UNAUTHORISED);
}
+
$users = array_keys($users);
- return new \OC\OCS\Result([
+ return new DataResponse([
'users' => $users
]);
}
/**
- * @return \OC\OCS\Result
+ * @NoAdminRequired
+ *
+ * @param string $userid
+ * @param string $password
+ * @param array $groups
+ * @return DataResponse
+ * @throws OCSException
*/
- public function addUser() {
- $userId = isset($_POST['userid']) ? $_POST['userid'] : null;
- $password = isset($_POST['password']) ? $_POST['password'] : null;
- $groups = isset($_POST['groups']) ? $_POST['groups'] : null;
+ public function addUser($userid, $password, $groups = null) {
$user = $this->userSession->getUser();
$isAdmin = $this->groupManager->isAdmin($user->getUID());
$subAdminManager = $this->groupManager->getSubAdmin();
- if (!$isAdmin && !$subAdminManager->isSubAdmin($user)) {
- return new \OC\OCS\Result(null, \OCP\API::RESPOND_UNAUTHORISED);
- }
-
- if($this->userManager->userExists($userId)) {
+ if($this->userManager->userExists($userid)) {
$this->logger->error('Failed addUser attempt: User already exists.', ['app' => 'ocs_api']);
- return new \OC\OCS\Result(null, 102, 'User already exists');
+ throw new OCSException('User already exists', 102);
}
if(is_array($groups)) {
foreach ($groups as $group) {
- if(!$this->groupManager->groupExists($group)){
- return new \OC\OCS\Result(null, 104, 'group '.$group.' does not exist');
+ if(!$this->groupManager->groupExists($group)) {
+ throw new OCSException('group '.$group.' does not exist', 104);
}
if(!$isAdmin && !$subAdminManager->isSubAdminofGroup($user, $this->groupManager->get($group))) {
- return new \OC\OCS\Result(null, 105, 'insufficient privileges for group '. $group);
+ throw new OCSException('insufficient privileges for group '. $group, 105);
}
}
} else {
if(!$isAdmin) {
- return new \OC\OCS\Result(null, 106, 'no group specified (required for subadmins)');
+ throw new OCSException('no group specified (required for subadmins)', 106);
}
}
try {
- $newUser = $this->userManager->createUser($userId, $password);
- $this->logger->info('Successful addUser call with userid: '.$userId, ['app' => 'ocs_api']);
+ $newUser = $this->userManager->createUser($userid, $password);
+ $this->logger->info('Successful addUser call with userid: '.$userid, ['app' => 'ocs_api']);
if (is_array($groups)) {
foreach ($groups as $group) {
$this->groupManager->get($group)->addUser($newUser);
- $this->logger->info('Added userid '.$userId.' to group '.$group, ['app' => 'ocs_api']);
+ $this->logger->info('Added userid '.$userid.' to group '.$group, ['app' => 'ocs_api']);
}
}
- return new \OC\OCS\Result(null, 100);
+ return new DataResponse();
} catch (\Exception $e) {
$this->logger->error('Failed addUser attempt with exception: '.$e->getMessage(), ['app' => 'ocs_api']);
- return new \OC\OCS\Result(null, 101, 'Bad request');
+ throw new OCSException('Bad request', 101);
}
}
/**
+ * @NoAdminRequired
+ * @NoSubAdminRequired
+ *
* gets user info
*
- * @param array $parameters
- * @return \OC\OCS\Result
+ * @param string $userId
+ * @return DataResponse
+ * @throws OCSException
*/
- public function getUser($parameters) {
- $userId = $parameters['userid'];
-
- // Check if user is logged in
+ public function getUser($userId) {
$currentLoggedInUser = $this->userSession->getUser();
- if ($currentLoggedInUser === null) {
- return new \OC\OCS\Result(null, \OCP\API::RESPOND_UNAUTHORISED);
- }
$data = [];
// Check if the target user exists
$targetUserObject = $this->userManager->get($userId);
if($targetUserObject === null) {
- return new \OC\OCS\Result(null, \OCP\API::RESPOND_NOT_FOUND, 'The requested user could not be found');
+ throw new OCSException('The requested user could not be found', \OCP\API::RESPOND_NOT_FOUND);
}
// Admin? Or SubAdmin?
@@ -198,7 +203,7 @@ class Users {
} else {
// Check they are looking up themselves
if($currentLoggedInUser->getUID() !== $userId) {
- return new \OC\OCS\Result(null, \OCP\API::RESPOND_UNAUTHORISED);
+ throw new OCSException('', \OCP\API::RESPOND_UNAUTHORISED);
}
}
@@ -207,32 +212,32 @@ class Users {
$data['email'] = $targetUserObject->getEMailAddress();
$data['displayname'] = $targetUserObject->getDisplayName();
- return new \OC\OCS\Result($data);
+ return new DataResponse($data);
}
- /**
+ /**
+ * @NoAdminRequired
+ * @NoSubAdminRequired
+ *
* edit users
*
- * @param array $parameters
- * @return \OC\OCS\Result
+ * @param string $userId
+ * @param string $key
+ * @param string $value
+ * @return DataResponse
+ * @throws OCSException
+ * @throws OCSForbiddenException
*/
- public function editUser($parameters) {
- /** @var string $targetUserId */
- $targetUserId = $parameters['userid'];
-
- // Check if user is logged in
+ public function editUser($userId, $key, $value) {
$currentLoggedInUser = $this->userSession->getUser();
- if ($currentLoggedInUser === null) {
- return new \OC\OCS\Result(null, \OCP\API::RESPOND_UNAUTHORISED);
- }
- $targetUser = $this->userManager->get($targetUserId);
+ $targetUser = $this->userManager->get($userId);
if($targetUser === null) {
- return new \OC\OCS\Result(null, 997);
+ throw new OCSException('', \OCP\API::RESPOND_UNAUTHORISED);
}
$permittedFields = [];
- if($targetUserId === $currentLoggedInUser->getUID()) {
+ if($userId === $currentLoggedInUser->getUID()) {
// Editing self (display, email)
$permittedFields[] = 'display';
$permittedFields[] = 'email';
@@ -253,20 +258,20 @@ class Users {
$permittedFields[] = 'email';
} else {
// No rights
- return new \OC\OCS\Result(null, 997);
+ throw new OCSException('', \OCP\API::RESPOND_UNAUTHORISED);
}
}
// Check if permitted to edit this field
- if(!in_array($parameters['_put']['key'], $permittedFields)) {
- return new \OC\OCS\Result(null, 997);
+ if(!in_array($key, $permittedFields)) {
+ throw new OCSException('', \OCP\API::RESPOND_UNAUTHORISED);
}
// Process the edit
- switch($parameters['_put']['key']) {
+ switch($key) {
case 'display':
- $targetUser->setDisplayName($parameters['_put']['value']);
+ $targetUser->setDisplayName($value);
break;
case 'quota':
- $quota = $parameters['_put']['value'];
+ $quota = $value;
if($quota !== 'none' and $quota !== 'default') {
if (is_numeric($quota)) {
$quota = floatval($quota);
@@ -274,7 +279,7 @@ class Users {
$quota = \OCP\Util::computerFileSize($quota);
}
if ($quota === false) {
- return new \OC\OCS\Result(null, 103, "Invalid quota value {$parameters['_put']['value']}");
+ throw new OCSException('Invalid quota value '.$value, 103);
}
if($quota === 0) {
$quota = 'default';
@@ -287,115 +292,118 @@ class Users {
$targetUser->setQuota($quota);
break;
case 'password':
- $targetUser->setPassword($parameters['_put']['value']);
+ $targetUser->setPassword($value);
break;
case 'email':
- if(filter_var($parameters['_put']['value'], FILTER_VALIDATE_EMAIL)) {
- $targetUser->setEMailAddress($parameters['_put']['value']);
+ if(filter_var($value, FILTER_VALIDATE_EMAIL)) {
+ $targetUser->setEMailAddress($value);
} else {
- return new \OC\OCS\Result(null, 102);
+ throw new OCSException('', 102);
}
break;
default:
- return new \OC\OCS\Result(null, 103);
+ throw new OCSException('', 103);
}
- return new \OC\OCS\Result(null, 100);
+ return new DataResponse();
}
/**
- * @param array $parameters
- * @return \OC\OCS\Result
+ * @NoAdminRequired
+ *
+ * @param string $userId
+ * @return DataResponse
+ * @throws OCSException
+ * @throws OCSForbiddenException
*/
- public function deleteUser($parameters) {
- // Check if user is logged in
+ public function deleteUser($userId) {
$currentLoggedInUser = $this->userSession->getUser();
- if ($currentLoggedInUser === null) {
- return new \OC\OCS\Result(null, \OCP\API::RESPOND_UNAUTHORISED);
- }
- $targetUser = $this->userManager->get($parameters['userid']);
+ $targetUser = $this->userManager->get($userId);
if($targetUser === null || $targetUser->getUID() === $currentLoggedInUser->getUID()) {
- return new \OC\OCS\Result(null, 101);
+ throw new OCSException('', 101);
}
// If not permitted
$subAdminManager = $this->groupManager->getSubAdmin();
if(!$this->groupManager->isAdmin($currentLoggedInUser->getUID()) && !$subAdminManager->isUserAccessible($currentLoggedInUser, $targetUser)) {
- return new \OC\OCS\Result(null, 997);
+ throw new OCSException('', \OCP\API::RESPOND_UNAUTHORISED);
}
// Go ahead with the delete
if($targetUser->delete()) {
- return new \OC\OCS\Result(null, 100);
+ return new DataResponse();
} else {
- return new \OC\OCS\Result(null, 101);
+ throw new OCSException('', 101);
}
}
/**
- * @param array $parameters
- * @return \OC\OCS\Result
+ * @NoAdminRequired
+ *
+ * @param string $userId
+ * @return DataResponse
*/
- public function disableUser($parameters) {
- return $this->setEnabled($parameters, false);
+ public function disableUser($userId) {
+ return $this->setEnabled($userId, false);
}
/**
- * @param array $parameters
- * @return \OC\OCS\Result
+ * @NoAdminRequired
+ *
+ * @param string $userId
+ * @return DataResponse
*/
- public function enableUser($parameters) {
- return $this->setEnabled($parameters, true);
+ public function enableUser($userId) {
+ return $this->setEnabled($userId, true);
}
/**
- * @param array $parameters
+ * @param string $userId
* @param bool $value
- * @return \OC\OCS\Result
+ * @return DataResponse
+ * @throws OCSException
+ * @throws OCSForbiddenException
*/
- private function setEnabled($parameters, $value) {
- // Check if user is logged in
+ private function setEnabled($userId, $value) {
$currentLoggedInUser = $this->userSession->getUser();
- if ($currentLoggedInUser === null) {
- return new \OC\OCS\Result(null, \OCP\API::RESPOND_UNAUTHORISED);
- }
- $targetUser = $this->userManager->get($parameters['userid']);
+ $targetUser = $this->userManager->get($userId);
if($targetUser === null || $targetUser->getUID() === $currentLoggedInUser->getUID()) {
- return new \OC\OCS\Result(null, 101);
+ throw new OCSException('', 101);
}
// If not permitted
$subAdminManager = $this->groupManager->getSubAdmin();
if(!$this->groupManager->isAdmin($currentLoggedInUser->getUID()) && !$subAdminManager->isUserAccessible($currentLoggedInUser, $targetUser)) {
- return new \OC\OCS\Result(null, 997);
+ throw new OCSException('', \OCP\API::RESPOND_UNAUTHORISED);
}
// enable/disable the user now
$targetUser->setEnabled($value);
- return new \OC\OCS\Result(null, 100);
+ return new DataResponse();
}
/**
- * @param array $parameters
- * @return \OC\OCS\Result
+ * @NoAdminRequired
+ * @NoSubAdminRequired
+ *
+ * @param string $userId
+ * @return DataResponse
+ * @throws OCSForbiddenException
+ * @throws OCSNotFoundException
*/
- public function getUsersGroups($parameters) {
- // Check if user is logged in
+ public function getUsersGroups($userId) {
$loggedInUser = $this->userSession->getUser();
- if ($loggedInUser === null) {
- return new \OC\OCS\Result(null, \OCP\API::RESPOND_UNAUTHORISED);
- }
- $targetUser = $this->userManager->get($parameters['userid']);
+ $targetUser = $this->userManager->get($userId);
if($targetUser === null) {
- return new \OC\OCS\Result(null, \OCP\API::RESPOND_NOT_FOUND);
+ throw new OCSException('', \OCP\API::RESPOND_NOT_FOUND);
}
if($targetUser->getUID() === $loggedInUser->getUID() || $this->groupManager->isAdmin($loggedInUser->getUID())) {
// Self lookup or admin lookup
- return new \OC\OCS\Result([
+ return new DataResponse([
'groups' => $this->groupManager->getUserGroupIds($targetUser)
]);
} else {
@@ -412,87 +420,75 @@ class Users {
$getSubAdminsGroups,
$this->groupManager->getUserGroupIds($targetUser)
);
- return new \OC\OCS\Result(array('groups' => $groups));
+ return new DataResponse(['groups' => $groups]);
} else {
// Not permitted
- return new \OC\OCS\Result(null, 997);
+ throw new OCSException('', \OCP\API::RESPOND_UNAUTHORISED);
}
}
}
/**
- * @param array $parameters
- * @return \OC\OCS\Result
+ * @param string $userId
+ * @param string $groupid
+ * @return DataResponse
+ * @throws OCSException
*/
- public function addToGroup($parameters) {
- // Check if user is logged in
- $user = $this->userSession->getUser();
- if ($user === null) {
- return new \OC\OCS\Result(null, \OCP\API::RESPOND_UNAUTHORISED);
+ public function addToGroup($userId, $groupid = '') {
+ if($groupid === '') {
+ throw new OCSException('', 101);
}
- // Check they're an admin
- if(!$this->groupManager->isAdmin($user->getUID())) {
- // This user doesn't have rights to add a user to this group
- return new \OC\OCS\Result(null, \OCP\API::RESPOND_UNAUTHORISED);
- }
-
- $groupId = !empty($_POST['groupid']) ? $_POST['groupid'] : null;
- if($groupId === null) {
- return new \OC\OCS\Result(null, 101);
- }
-
- $group = $this->groupManager->get($groupId);
- $targetUser = $this->userManager->get($parameters['userid']);
+ $group = $this->groupManager->get($groupid);
+ $targetUser = $this->userManager->get($userId);
if($group === null) {
- return new \OC\OCS\Result(null, 102);
+ throw new OCSException('', 102);
}
if($targetUser === null) {
- return new \OC\OCS\Result(null, 103);
+ throw new OCSException('', 103);
}
// Add user to group
$group->addUser($targetUser);
- return new \OC\OCS\Result(null, 100);
+ return new DataResponse();
}
/**
- * @param array $parameters
- * @return \OC\OCS\Result
+ * @NoAdminRequired
+ *
+ * @param string userId
+ * @param string $groupid
+ * @return DataResponse
+ * @throws OCSException
*/
- public function removeFromGroup($parameters) {
- // Check if user is logged in
+ public function removeFromGroup($userId, $groupid) {
$loggedInUser = $this->userSession->getUser();
- if ($loggedInUser === null) {
- return new \OC\OCS\Result(null, \OCP\API::RESPOND_UNAUTHORISED);
- }
- $group = !empty($parameters['_delete']['groupid']) ? $parameters['_delete']['groupid'] : null;
- if($group === null) {
- return new \OC\OCS\Result(null, 101);
+ if($groupid === null) {
+ throw new OCSException('', 101);
}
- $group = $this->groupManager->get($group);
+ $group = $this->groupManager->get($groupid);
if($group === null) {
- return new \OC\OCS\Result(null, 102);
+ throw new OCSException('', 102);
}
- $targetUser = $this->userManager->get($parameters['userid']);
+ $targetUser = $this->userManager->get($userId);
if($targetUser === null) {
- return new \OC\OCS\Result(null, 103);
+ throw new OCSException('', 103);
}
// If they're not an admin, check they are a subadmin of the group in question
$subAdminManager = $this->groupManager->getSubAdmin();
if(!$this->groupManager->isAdmin($loggedInUser->getUID()) && !$subAdminManager->isSubAdminofGroup($loggedInUser, $group)) {
- return new \OC\OCS\Result(null, 104);
+ throw new OCSException('', 104);
}
// Check they aren't removing themselves from 'admin' or their 'subadmin; group
- if($parameters['userid'] === $loggedInUser->getUID()) {
+ if($userId === $loggedInUser->getUID()) {
if($this->groupManager->isAdmin($loggedInUser->getUID())) {
if($group->getGID() === 'admin') {
- return new \OC\OCS\Result(null, 105, 'Cannot remove yourself from the admin group');
+ throw new OCSException('Cannot remove yourself from the admin group', 105);
}
} else {
// Not an admin, check they are not removing themself from their subadmin group
@@ -502,96 +498,101 @@ class Users {
}
if(in_array($group->getGID(), $subAdminGroups, true)) {
- return new \OC\OCS\Result(null, 105, 'Cannot remove yourself from this group as you are a SubAdmin');
+ throw new OCSException('Cannot remove yourself from this group as you are a SubAdmin', 105);
}
}
}
// Remove user from group
$group->removeUser($targetUser);
- return new \OC\OCS\Result(null, 100);
+ return new DataResponse();
}
/**
* Creates a subadmin
*
- * @param array $parameters
- * @return \OC\OCS\Result
+ * @param string $userId
+ * @param string $groupid
+ * @return DataResponse
+ * @throws OCSException
*/
- public function addSubAdmin($parameters) {
- $group = $this->groupManager->get($_POST['groupid']);
- $user = $this->userManager->get($parameters['userid']);
+ public function addSubAdmin($userId, $groupid) {
+ $group = $this->groupManager->get($groupid);
+ $user = $this->userManager->get($userId);
// Check if the user exists
if($user === null) {
- return new \OC\OCS\Result(null, 101, 'User does not exist');
+ throw new OCSException('User does not exist', 101);
}
// Check if group exists
if($group === null) {
- return new \OC\OCS\Result(null, 102, 'Group:'.$_POST['groupid'].' does not exist');
+ throw new OCSException('Group:'.$groupid.' does not exist', 102);
}
// Check if trying to make subadmin of admin group
- if(strtolower($_POST['groupid']) === 'admin') {
- return new \OC\OCS\Result(null, 103, 'Cannot create subadmins for admin group');
+ if(strtolower($groupid) === 'admin') {
+ throw new OCSException('Cannot create subadmins for admin group', 103);
}
$subAdminManager = $this->groupManager->getSubAdmin();
// We cannot be subadmin twice
if ($subAdminManager->isSubAdminofGroup($user, $group)) {
- return new \OC\OCS\Result(null, 100);
+ return new DataResponse();
}
// Go
if($subAdminManager->createSubAdmin($user, $group)) {
- return new \OC\OCS\Result(null, 100);
+ return new DataResponse();
} else {
- return new \OC\OCS\Result(null, 103, 'Unknown error occurred');
+ throw new OCSException('Unknown error occurred', 103);
}
}
/**
* Removes a subadmin from a group
*
- * @param array $parameters
- * @return \OC\OCS\Result
+ * @param string $userId
+ * @param string $groupid
+ * @return DataResponse
+ * @throws OCSException
*/
- public function removeSubAdmin($parameters) {
- $group = $this->groupManager->get($parameters['_delete']['groupid']);
- $user = $this->userManager->get($parameters['userid']);
+ public function removeSubAdmin($userId, $groupid) {
+ $group = $this->groupManager->get($groupid);
+ $user = $this->userManager->get($userId);
$subAdminManager = $this->groupManager->getSubAdmin();
// Check if the user exists
if($user === null) {
- return new \OC\OCS\Result(null, 101, 'User does not exist');
+ throw new OCSException('User does not exist', 101);
}
// Check if the group exists
if($group === null) {
- return new \OC\OCS\Result(null, 101, 'Group does not exist');
+ throw new OCSException('Group does not exist', 101);
}
// Check if they are a subadmin of this said group
if(!$subAdminManager->isSubAdminofGroup($user, $group)) {
- return new \OC\OCS\Result(null, 102, 'User is not a subadmin of this group');
+ throw new OCSException('User is not a subadmin of this group', 102);
}
// Go
if($subAdminManager->deleteSubAdmin($user, $group)) {
- return new \OC\OCS\Result(null, 100);
+ return new DataResponse();
} else {
- return new \OC\OCS\Result(null, 103, 'Unknown error occurred');
+ throw new OCSException('Unknown error occurred', 103);
}
}
/**
* Get the groups a user is a subadmin of
*
- * @param array $parameters
- * @return \OC\OCS\Result
+ * @param string $userId
+ * @return DataResponse
+ * @throws OCSException
*/
- public function getUserSubAdminGroups($parameters) {
- $user = $this->userManager->get($parameters['userid']);
+ public function getUserSubAdminGroups($userId) {
+ $user = $this->userManager->get($userId);
// Check if the user exists
if($user === null) {
- return new \OC\OCS\Result(null, 101, 'User does not exist');
+ throw new OCSException('User does not exist', 101);
}
// Get the subadmin groups
@@ -601,9 +602,9 @@ class Users {
}
if(!$groups) {
- return new \OC\OCS\Result(null, 102, 'Unknown error occurred');
+ throw new OCSException('Unknown error occurred', 102);
} else {
- return new \OC\OCS\Result($groups);
+ return new DataResponse($groups);
}
}
diff --git a/apps/provisioning_api/tests/UsersTest.php b/apps/provisioning_api/tests/Controller/UsersControllerTest.php
index e67d603e487..e04ee86feae 100644
--- a/apps/provisioning_api/tests/UsersTest.php
+++ b/apps/provisioning_api/tests/Controller/UsersControllerTest.php
@@ -27,10 +27,9 @@
*
*/
-namespace OCA\Provisioning_API\Tests;
+namespace OCA\Provisioning_API\Tests\Controller;
-use OCA\Provisioning_API\Users;
-use OCP\API;
+use OCA\Provisioning_API\Controller\UsersController;
use OCP\IUserManager;
use OCP\IConfig;
use OCP\IUserSession;
@@ -38,7 +37,7 @@ use PHPUnit_Framework_MockObject_MockObject;
use Test\TestCase as OriginalTest;
use OCP\ILogger;
-class UsersTest extends OriginalTest {
+class UsersControllerTest extends OriginalTest {
/** @var IUserManager | PHPUnit_Framework_MockObject_MockObject */
protected $userManager;
@@ -50,12 +49,10 @@ class UsersTest extends OriginalTest {
protected $userSession;
/** @var ILogger | PHPUnit_Framework_MockObject_MockObject */
protected $logger;
- /** @var Users | PHPUnit_Framework_MockObject_MockObject */
+ /** @var UsersController | PHPUnit_Framework_MockObject_MockObject */
protected $api;
protected function tearDown() {
- $_GET = null;
- $_POST = null;
parent::tearDown();
}
@@ -77,8 +74,13 @@ class UsersTest extends OriginalTest {
$this->logger = $this->getMockBuilder('OCP\ILogger')
->disableOriginalConstructor()
->getMock();
- $this->api = $this->getMockBuilder('OCA\Provisioning_API\Users')
+ $request = $this->getMockBuilder('OCP\IRequest')
+ ->disableOriginalConstructor()
+ ->getMock();
+ $this->api = $this->getMockBuilder('OCA\Provisioning_API\Controller\UsersController')
->setConstructorArgs([
+ 'provisioning_api',
+ $request,
$this->userManager,
$this->config,
$this->groupManager,
@@ -89,19 +91,7 @@ class UsersTest extends OriginalTest {
->getMock();
}
- public function testGetUsersNotLoggedIn() {
- $this->userSession
- ->expects($this->once())
- ->method('getUser')
- ->will($this->returnValue(null));
-
- $expected = new \OC\OCS\Result(null, API::RESPOND_UNAUTHORISED);
- $this->assertEquals($expected, $this->api->getUsers());
- }
-
public function testGetUsersAsAdmin() {
- $_GET['search'] = 'MyCustomSearch';
-
$loggedInUser = $this->getMockBuilder('OCP\IUser')
->disableOriginalConstructor()
->getMock();
@@ -123,19 +113,16 @@ class UsersTest extends OriginalTest {
->with('MyCustomSearch', null, null)
->will($this->returnValue(['Admin' => [], 'Foo' => [], 'Bar' => []]));
- $expected = new \OC\OCS\Result([
- 'users' => [
+ $expected = ['users' => [
'Admin',
'Foo',
'Bar',
],
- ]);
- $this->assertEquals($expected, $this->api->getUsers());
+ ];
+ $this->assertEquals($expected, $this->api->getUsers('MyCustomSearch')->getData());
}
public function testGetUsersAsSubAdmin() {
- $_GET['search'] = 'MyCustomSearch';
-
$loggedInUser = $this->getMockBuilder('OCP\IUser')
->disableOriginalConstructor()
->getMock();
@@ -186,51 +173,20 @@ class UsersTest extends OriginalTest {
->method('displayNamesInGroup')
->will($this->onConsecutiveCalls(['AnotherUserInTheFirstGroup' => []], ['UserInTheSecondGroup' => []]));
- $expected = new \OC\OCS\Result([
+ $expected = [
'users' => [
'AnotherUserInTheFirstGroup',
'UserInTheSecondGroup',
],
- ]);
- $this->assertEquals($expected, $this->api->getUsers());
- }
-
- public function testGetUsersAsRegularUser() {
- $_GET['search'] = 'MyCustomSearch';
-
- $loggedInUser = $this->getMockBuilder('OCP\IUser')
- ->disableOriginalConstructor()
- ->getMock();
- $loggedInUser
- ->expects($this->once())
- ->method('getUID')
- ->will($this->returnValue('regularUser'));
- $this->userSession
- ->expects($this->once())
- ->method('getUser')
- ->will($this->returnValue($loggedInUser));
- $this->groupManager
- ->expects($this->once())
- ->method('isAdmin')
- ->will($this->returnValue(false));
- $subAdminManager = $this->getMockBuilder('OC\SubAdmin')
- ->disableOriginalConstructor()->getMock();
- $subAdminManager
- ->expects($this->once())
- ->method('isSubAdmin')
- ->with($loggedInUser)
- ->will($this->returnValue(false));
- $this->groupManager
- ->expects($this->once())
- ->method('getSubAdmin')
- ->will($this->returnValue($subAdminManager));
-
- $expected = new \OC\OCS\Result(null, API::RESPOND_UNAUTHORISED);
- $this->assertEquals($expected, $this->api->getUsers());
+ ];
+ $this->assertEquals($expected, $this->api->getUsers('MyCustomSearch')->getData());
}
+ /**
+ * @expectedException \OCP\AppFramework\OCS\OCSException
+ * @expectedExceptionCode 102
+ */
public function testAddUserAlreadyExisting() {
- $_POST['userid'] = 'AlreadyExistingUser';
$this->userManager
->expects($this->once())
->method('userExists')
@@ -257,13 +213,15 @@ class UsersTest extends OriginalTest {
->with('adminUser')
->willReturn(true);
- $expected = new \OC\OCS\Result(null, 102, 'User already exists');
- $this->assertEquals($expected, $this->api->addUser());
+ $this->api->addUser('AlreadyExistingUser', null, null);
}
+ /**
+ * @expectedException \OCP\AppFramework\OCS\OCSException
+ * @expectedExceptionCode 104
+ * @expectedExceptionMessage group NonExistingGroup does not exist
+ */
public function testAddUserNonExistingGroup() {
- $_POST['userid'] = 'NewUser';
- $_POST['groups'] = ['NonExistingGroup'];
$this->userManager
->expects($this->once())
->method('userExists')
@@ -291,13 +249,15 @@ class UsersTest extends OriginalTest {
->with('NonExistingGroup')
->willReturn(false);
- $expected = new \OC\OCS\Result(null, 104, 'group NonExistingGroup does not exist');
- $this->assertEquals($expected, $this->api->addUser());
+ $this->api->addUser('NewUser', 'pass', ['NonExistingGroup']);
}
+ /**
+ * @expectedException \OCP\AppFramework\OCS\OCSException
+ * @expectedExceptionCode 104
+ * @expectedExceptionMessage group NonExistingGroup does not exist
+ */
public function testAddUserExistingGroupNonExistingGroup() {
- $_POST['userid'] = 'NewUser';
- $_POST['groups'] = ['ExistingGroup', 'NonExistingGroup'];
$this->userManager
->expects($this->once())
->method('userExists')
@@ -331,13 +291,10 @@ class UsersTest extends OriginalTest {
['NonExistingGroup', false]
]));
- $expected = new \OC\OCS\Result(null, 104, 'group NonExistingGroup does not exist');
- $this->assertEquals($expected, $this->api->addUser());
+ $this->api->addUser('NewUser', 'pass', ['ExistingGroup', 'NonExistingGroup']);
}
public function testAddUserSuccessful() {
- $_POST['userid'] = 'NewUser';
- $_POST['password'] = 'PasswordOfTheNewUser';
$this->userManager
->expects($this->once())
->method('userExists')
@@ -368,14 +325,10 @@ class UsersTest extends OriginalTest {
->with('adminUser')
->willReturn(true);
- $expected = new \OC\OCS\Result(null, 100);
- $this->assertEquals($expected, $this->api->addUser());
+ $this->assertEquals([], $this->api->addUser('NewUser', 'PasswordOfTheNewUser')->getData());
}
public function testAddUserExistingGroup() {
- $_POST['userid'] = 'NewUser';
- $_POST['password'] = 'PasswordOfTheNewUser';
- $_POST['groups'] = ['ExistingGroup'];
$this->userManager
->expects($this->once())
->method('userExists')
@@ -430,13 +383,15 @@ class UsersTest extends OriginalTest {
['Added userid NewUser to group ExistingGroup', ['app' => 'ocs_api']]
);
- $expected = new \OC\OCS\Result(null, 100);
- $this->assertEquals($expected, $this->api->addUser());
+ $this->assertEquals([], $this->api->addUser('NewUser', 'PasswordOfTheNewUser', ['ExistingGroup'])->getData());
}
+ /**
+ * @expectedException \OCP\AppFramework\OCS\OCSException
+ * @expectedExceptionCode 101
+ * @expectedExceptionMessage Bad request
+ */
public function testAddUserUnsuccessful() {
- $_POST['userid'] = 'NewUser';
- $_POST['password'] = 'PasswordOfTheNewUser';
$this->userManager
->expects($this->once())
->method('userExists')
@@ -468,49 +423,15 @@ class UsersTest extends OriginalTest {
->with('adminUser')
->willReturn(true);
- $expected = new \OC\OCS\Result(null, 101, 'Bad request');
- $this->assertEquals($expected, $this->api->addUser());
- }
-
- public function testAddUserAsRegularUser() {
- $_POST['userid'] = 'NewUser';
- $_POST['password'] = 'PasswordOfTheNewUser';
- $loggedInUser = $this->getMockBuilder('OCP\IUser')
- ->disableOriginalConstructor()
- ->getMock();
- $loggedInUser
- ->expects($this->once())
- ->method('getUID')
- ->will($this->returnValue('regularUser'));
- $this->userSession
- ->expects($this->once())
- ->method('getUser')
- ->will($this->returnValue($loggedInUser));
- $this->groupManager
- ->expects($this->once())
- ->method('isAdmin')
- ->with('regularUser')
- ->willReturn(false);
- $subAdminManager = $this->getMockBuilder('OC\SubAdmin')
- ->disableOriginalConstructor()->getMock();
- $subAdminManager
- ->expects($this->once())
- ->method('isSubAdmin')
- ->with($loggedInUser)
- ->willReturn(false);
- $this->groupManager
- ->expects($this->once())
- ->method('getSubAdmin')
- ->with()
- ->willReturn($subAdminManager);
-
- $expected = new \OC\OCS\Result(null, API::RESPOND_UNAUTHORISED);
- $this->assertEquals($expected, $this->api->addUser());
+ $this->api->addUser('NewUser', 'PasswordOfTheNewUser');
}
+ /**
+ * @expectedException \OCP\AppFramework\OCS\OCSException
+ * @expectedExceptionCode 106
+ * @expectedExceptionMessage no group specified (required for subadmins)
+ */
public function testAddUserAsSubAdminNoGroup() {
- $_POST['userid'] = 'NewUser';
- $_POST['password'] = 'PasswordOfTheNewUser';
$loggedInUser = $this->getMockBuilder('OCP\IUser')
->disableOriginalConstructor()
->getMock();
@@ -529,25 +450,21 @@ class UsersTest extends OriginalTest {
->willReturn(false);
$subAdminManager = $this->getMockBuilder('OC\SubAdmin')
->disableOriginalConstructor()->getMock();
- $subAdminManager
- ->expects($this->once())
- ->method('isSubAdmin')
- ->with($loggedInUser)
- ->willReturn(true);
$this->groupManager
->expects($this->once())
->method('getSubAdmin')
->with()
->willReturn($subAdminManager);
- $expected = new \OC\OCS\Result(null, 106, 'no group specified (required for subadmins)');
- $this->assertEquals($expected, $this->api->addUser());
+ $this->api->addUser('NewUser', 'PasswordOfTheNewUser', null);
}
+ /**
+ * @expectedException \OCP\AppFramework\OCS\OCSException
+ * @expectedExceptionCode 105
+ * @expectedExceptionMessage insufficient privileges for group ExistingGroup
+ */
public function testAddUserAsSubAdminValidGroupNotSubAdmin() {
- $_POST['userid'] = 'NewUser';
- $_POST['password'] = 'PasswordOfTheNewUser';
- $_POST['groups'] = ['ExistingGroup'];
$loggedInUser = $this->getMockBuilder('OCP\IUser')
->disableOriginalConstructor()
->getMock();
@@ -574,11 +491,6 @@ class UsersTest extends OriginalTest {
->disableOriginalConstructor()->getMock();
$subAdminManager
->expects($this->once())
- ->method('isSubAdmin')
- ->with($loggedInUser)
- ->willReturn(true);
- $subAdminManager
- ->expects($this->once())
->method('isSubAdminOfGroup')
->with($loggedInUser, $existingGroup)
->willReturn(false);
@@ -593,14 +505,10 @@ class UsersTest extends OriginalTest {
->with('ExistingGroup')
->willReturn(true);
- $expected = new \OC\OCS\Result(null, 105, 'insufficient privileges for group ExistingGroup');
- $this->assertEquals($expected, $this->api->addUser());
+ $this->api->addUser('NewUser', 'PasswordOfTheNewUser', ['ExistingGroup'])->getData();
}
public function testAddUserAsSubAdminExistingGroups() {
- $_POST['userid'] = 'NewUser';
- $_POST['password'] = 'PasswordOfTheNewUser';
- $_POST['groups'] = ['ExistingGroup1', 'ExistingGroup2'];
$this->userManager
->expects($this->once())
->method('userExists')
@@ -680,11 +588,6 @@ class UsersTest extends OriginalTest {
->method('getSubAdmin')
->willReturn($subAdminManager);
$subAdminManager
- ->expects($this->once())
- ->method('isSubAdmin')
- ->with($loggedInUser)
- ->willReturn(true);
- $subAdminManager
->expects($this->exactly(2))
->method('isSubAdminOfGroup')
->withConsecutive(
@@ -693,22 +596,14 @@ class UsersTest extends OriginalTest {
)
->willReturn(true);
-
- $expected = new \OC\OCS\Result(null, 100);
- $this->assertEquals($expected, $this->api->addUser());
- }
-
-
- public function testGetUserNotLoggedIn() {
- $this->userSession
- ->expects($this->once())
- ->method('getUser')
- ->will($this->returnValue(null));
-
- $expected = new \OC\OCS\Result(null, API::RESPOND_UNAUTHORISED);
- $this->assertEquals($expected, $this->api->getUser(['userid' => 'UserToGet']));
+ $this->assertEquals([], $this->api->addUser('NewUser', 'PasswordOfTheNewUser', ['ExistingGroup1', 'ExistingGroup2'])->getData());
}
+ /**
+ * @expectedException \OCP\AppFramework\OCS\OCSException
+ * @expectedExceptionCode 998
+ * @expectedExceptionMessage The requested user could not be found
+ */
public function testGetUserTargetDoesNotExist() {
$loggedInUser = $this->getMockBuilder('OCP\IUser')
->disableOriginalConstructor()
@@ -723,8 +618,7 @@ class UsersTest extends OriginalTest {
->with('UserToGet')
->will($this->returnValue(null));
- $expected = new \OC\OCS\Result(null, API::RESPOND_NOT_FOUND, 'The requested user could not be found');
- $this->assertEquals($expected, $this->api->getUser(['userid' => 'UserToGet']));
+ $this->api->getUser('UserToGet');
}
public function testGetUserAsAdmin() {
@@ -770,15 +664,13 @@ class UsersTest extends OriginalTest {
->method('getDisplayName')
->will($this->returnValue('Demo User'));
- $expected = new \OC\OCS\Result(
- [
- 'enabled' => 'true',
- 'quota' => ['DummyValue'],
- 'email' => 'demo@owncloud.org',
- 'displayname' => 'Demo User',
- ]
- );
- $this->assertEquals($expected, $this->api->getUser(['userid' => 'UserToGet']));
+ $expected = [
+ 'enabled' => 'true',
+ 'quota' => ['DummyValue'],
+ 'email' => 'demo@owncloud.org',
+ 'displayname' => 'Demo User',
+ ];
+ $this->assertEquals($expected, $this->api->getUser('UserToGet')->getData());
}
public function testGetUserAsSubAdminAndUserIsAccessible() {
@@ -837,17 +729,20 @@ class UsersTest extends OriginalTest {
->method('getDisplayName')
->will($this->returnValue('Demo User'));
- $expected = new \OC\OCS\Result(
- [
- 'enabled' => 'true',
- 'quota' => ['DummyValue'],
- 'email' => 'demo@owncloud.org',
- 'displayname' => 'Demo User',
- ]
- );
- $this->assertEquals($expected, $this->api->getUser(['userid' => 'UserToGet']));
+ $expected = [
+ 'enabled' => 'true',
+ 'quota' => ['DummyValue'],
+ 'email' => 'demo@owncloud.org',
+ 'displayname' => 'Demo User',
+ ];
+ $this->assertEquals($expected, $this->api->getUser('UserToGet')->getData());
}
+
+ /**
+ * @expectedException \OCP\AppFramework\OCS\OCSException
+ * @expectedExceptionCode 997
+ */
public function testGetUserAsSubAdminAndUserIsNotAccessible() {
$loggedInUser = $this->getMockBuilder('OCP\IUser')
->disableOriginalConstructor()
@@ -886,8 +781,7 @@ class UsersTest extends OriginalTest {
->method('getSubAdmin')
->will($this->returnValue($subAdminManager));
- $expected = new \OC\OCS\Result(null, API::RESPOND_UNAUTHORISED);
- $this->assertEquals($expected, $this->api->getUser(['userid' => 'UserToGet']));
+ $this->api->getUser('UserToGet');
}
public function testGetUserAsSubAdminSelfLookup() {
@@ -941,22 +835,12 @@ class UsersTest extends OriginalTest {
->method('getEMailAddress')
->will($this->returnValue('subadmin@owncloud.org'));
- $expected = new \OC\OCS\Result([
+ $expected = [
'quota' => ['DummyValue'],
'email' => 'subadmin@owncloud.org',
'displayname' => 'Subadmin User',
- ]);
- $this->assertEquals($expected, $this->api->getUser(['userid' => 'subadmin']));
- }
-
- public function testEditUserNotLoggedIn() {
- $this->userSession
- ->expects($this->once())
- ->method('getUser')
- ->will($this->returnValue(null));
-
- $expected = new \OC\OCS\Result(null, API::RESPOND_UNAUTHORISED);
- $this->assertEquals($expected, $this->api->editUser(['userid' => 'UserToEdit']));
+ ];
+ $this->assertEquals($expected, $this->api->getUser('subadmin')->getData());
}
public function testEditUserRegularUserSelfEditChangeDisplayName() {
@@ -984,8 +868,7 @@ class UsersTest extends OriginalTest {
->method('setDisplayName')
->with('NewDisplayName');
- $expected = new \OC\OCS\Result(null, 100);
- $this->assertEquals($expected, $this->api->editUser(['userid' => 'UserToEdit', '_put' => ['key' => 'display', 'value' => 'NewDisplayName']]));
+ $this->assertEquals([], $this->api->editUser('UserToEdit', 'display', 'NewDisplayName')->getData());
}
public function testEditUserRegularUserSelfEditChangeEmailValid() {
@@ -1013,10 +896,14 @@ class UsersTest extends OriginalTest {
->method('setEMailAddress')
->with('demo@owncloud.org');
- $expected = new \OC\OCS\Result(null, 100);
- $this->assertEquals($expected, $this->api->editUser(['userid' => 'UserToEdit', '_put' => ['key' => 'email', 'value' => 'demo@owncloud.org']]));
+ $this->assertEquals([], $this->api->editUser('UserToEdit', 'email', 'demo@owncloud.org')->getData());
}
+
+ /**
+ * @expectedException \OCP\AppFramework\OCS\OCSException
+ * @expectedExceptionCode 102
+ */
public function testEditUserRegularUserSelfEditChangeEmailInvalid() {
$loggedInUser = $this->getMockBuilder('OCP\IUser')
->disableOriginalConstructor()
@@ -1038,8 +925,7 @@ class UsersTest extends OriginalTest {
->with('UserToEdit')
->will($this->returnValue($targetUser));
- $expected = new \OC\OCS\Result(null, 102);
- $this->assertEquals($expected, $this->api->editUser(['userid' => 'UserToEdit', '_put' => ['key' => 'email', 'value' => 'demo.org']]));
+ $this->api->editUser('UserToEdit', 'email', 'demo.org');
}
public function testEditUserRegularUserSelfEditChangePassword() {
@@ -1067,10 +953,14 @@ class UsersTest extends OriginalTest {
->method('setPassword')
->with('NewPassword');
- $expected = new \OC\OCS\Result(null, 100);
- $this->assertEquals($expected, $this->api->editUser(['userid' => 'UserToEdit', '_put' => ['key' => 'password', 'value' => 'NewPassword']]));
+ $this->assertEquals([], $this->api->editUser('UserToEdit', 'password', 'NewPassword')->getData());
}
+
+ /**
+ * @expectedException \OCP\AppFramework\OCS\OCSException
+ * @expectedExceptionCode 997
+ */
public function testEditUserRegularUserSelfEditChangeQuota() {
$loggedInUser = $this->getMockBuilder('OCP\IUser')
->disableOriginalConstructor()
@@ -1092,8 +982,7 @@ class UsersTest extends OriginalTest {
->with('UserToEdit')
->will($this->returnValue($targetUser));
- $expected = new \OC\OCS\Result(null, 997);
- $this->assertEquals($expected, $this->api->editUser(['userid' => 'UserToEdit', '_put' => ['key' => 'quota', 'value' => 'NewQuota']]));
+ $this->api->editUser('UserToEdit', 'quota', 'NewQuota');
}
public function testEditUserAdminUserSelfEditChangeValidQuota() {
@@ -1121,10 +1010,15 @@ class UsersTest extends OriginalTest {
->with('UserToEdit')
->will($this->returnValue(true));
- $expected = new \OC\OCS\Result(null, 100);
- $this->assertEquals($expected, $this->api->editUser(['userid' => 'UserToEdit', '_put' => ['key' => 'quota', 'value' => '3042824']]));
+ $this->assertEquals([], $this->api->editUser('UserToEdit', 'quota', '3042824')->getData());
}
+
+ /**
+ * @expectedException \OCP\AppFramework\OCS\OCSException
+ * @expectedExceptionCode 103
+ * @expectedExceptionMessage Invalid quota value ABC
+ */
public function testEditUserAdminUserSelfEditChangeInvalidQuota() {
$loggedInUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock();
$loggedInUser
@@ -1147,8 +1041,7 @@ class UsersTest extends OriginalTest {
->with('UserToEdit')
->will($this->returnValue(true));
- $expected = new \OC\OCS\Result(null, 103, 'Invalid quota value ABC');
- $this->assertEquals($expected, $this->api->editUser(['userid' => 'UserToEdit', '_put' => ['key' => 'quota', 'value' => 'ABC']]));
+ $this->api->editUser('UserToEdit', 'quota', 'ABC');
}
public function testEditUserAdminUserEditChangeValidQuota() {
@@ -1183,8 +1076,7 @@ class UsersTest extends OriginalTest {
->method('getSubAdmin')
->will($this->returnValue($subAdminManager));
- $expected = new \OC\OCS\Result(null, 100);
- $this->assertEquals($expected, $this->api->editUser(['userid' => 'UserToEdit', '_put' => ['key' => 'quota', 'value' => '3042824']]));
+ $this->assertEquals([], $this->api->editUser('UserToEdit', 'quota', '3042824')->getData());
}
public function testEditUserSubadminUserAccessible() {
@@ -1219,10 +1111,13 @@ class UsersTest extends OriginalTest {
->method('getSubAdmin')
->will($this->returnValue($subAdminManager));
- $expected = new \OC\OCS\Result(null, 100);
- $this->assertEquals($expected, $this->api->editUser(['userid' => 'UserToEdit', '_put' => ['key' => 'quota', 'value' => '3042824']]));
+ $this->assertEquals([], $this->api->editUser('UserToEdit', 'quota', '3042824')->getData());
}
+ /**
+ * @expectedException \OCP\AppFramework\OCS\OCSException
+ * @expectedExceptionCode 997
+ */
public function testEditUserSubadminUserInaccessible() {
$loggedInUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock();
$loggedInUser
@@ -1252,20 +1147,13 @@ class UsersTest extends OriginalTest {
->method('getSubAdmin')
->will($this->returnValue($subAdminManager));
- $expected = new \OC\OCS\Result(null, 997);
- $this->assertEquals($expected, $this->api->editUser(['userid' => 'UserToEdit', '_put' => ['key' => 'quota', 'value' => '3042824']]));
- }
-
- public function testDeleteUserNotLoggedIn() {
- $this->userSession
- ->expects($this->once())
- ->method('getUser')
- ->will($this->returnValue(null));
-
- $expected = new \OC\OCS\Result(null, 997);
- $this->assertEquals($expected, $this->api->deleteUser(['userid' => 'UserToDelete']));
+ $this->api->editUser('UserToEdit', 'quota', 'value');
}
+ /**
+ * @expectedException \OCP\AppFramework\OCS\OCSException
+ * @expectedExceptionCode 101
+ */
public function testDeleteUserNotExistingUser() {
$loggedInUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock();
$loggedInUser
@@ -1282,10 +1170,13 @@ class UsersTest extends OriginalTest {
->with('UserToDelete')
->will($this->returnValue(null));
- $expected = new \OC\OCS\Result(null, 101);
- $this->assertEquals($expected, $this->api->deleteUser(['userid' => 'UserToDelete']));
+ $this->api->deleteUser('UserToDelete');
}
+ /**
+ * @expectedException \OCP\AppFramework\OCS\OCSException
+ * @expectedExceptionCode 101
+ */
public function testDeleteUserSelf() {
$loggedInUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock();
$loggedInUser
@@ -1307,8 +1198,7 @@ class UsersTest extends OriginalTest {
->with('UserToDelete')
->will($this->returnValue($targetUser));
- $expected = new \OC\OCS\Result(null, 101);
- $this->assertEquals($expected, $this->api->deleteUser(['userid' => 'UserToDelete']));
+ $this->api->deleteUser('UserToDelete');
}
public function testDeleteSuccessfulUserAsAdmin() {
@@ -1341,10 +1231,13 @@ class UsersTest extends OriginalTest {
->method('delete')
->will($this->returnValue(true));
- $expected = new \OC\OCS\Result(null, 100);
- $this->assertEquals($expected, $this->api->deleteUser(['userid' => 'UserToDelete']));
+ $this->assertEquals([], $this->api->deleteUser('UserToDelete')->getData());
}
+ /**
+ * @expectedException \OCP\AppFramework\OCS\OCSException
+ * @expectedExceptionCode 101
+ */
public function testDeleteUnsuccessfulUserAsAdmin() {
$loggedInUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock();
$loggedInUser
@@ -1375,8 +1268,7 @@ class UsersTest extends OriginalTest {
->method('delete')
->will($this->returnValue(false));
- $expected = new \OC\OCS\Result(null, 101);
- $this->assertEquals($expected, $this->api->deleteUser(['userid' => 'UserToDelete']));
+ $this->api->deleteUser('UserToDelete');
}
public function testDeleteSuccessfulUserAsSubadmin() {
@@ -1420,10 +1312,13 @@ class UsersTest extends OriginalTest {
->method('delete')
->will($this->returnValue(true));
- $expected = new \OC\OCS\Result(null, 100);
- $this->assertEquals($expected, $this->api->deleteUser(['userid' => 'UserToDelete']));
+ $this->assertEquals([], $this->api->deleteUser('UserToDelete')->getData());
}
+ /**
+ * @expectedException \OCP\AppFramework\OCS\OCSException
+ * @expectedExceptionCode 101
+ */
public function testDeleteUnsuccessfulUserAsSubadmin() {
$loggedInUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock();
$loggedInUser
@@ -1465,10 +1360,13 @@ class UsersTest extends OriginalTest {
->method('delete')
->will($this->returnValue(false));
- $expected = new \OC\OCS\Result(null, 101);
- $this->assertEquals($expected, $this->api->deleteUser(['userid' => 'UserToDelete']));
+ $this->api->deleteUser('UserToDelete');
}
+ /**
+ * @expectedException \OCP\AppFramework\OCS\OCSException
+ * @expectedExceptionCode 997
+ */
public function testDeleteUserAsSubAdminAndUserIsNotAccessible() {
$loggedInUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock();
$loggedInUser
@@ -1506,20 +1404,13 @@ class UsersTest extends OriginalTest {
->method('getSubAdmin')
->will($this->returnValue($subAdminManager));
- $expected = new \OC\OCS\Result(null, 997);
- $this->assertEquals($expected, $this->api->deleteUser(['userid' => 'UserToDelete']));
- }
-
- public function testGetUsersGroupsNotLoggedIn() {
- $this->userSession
- ->expects($this->once())
- ->method('getUser')
- ->will($this->returnValue(null));
-
- $expected = new \OC\OCS\Result(null, 997);
- $this->assertEquals($expected, $this->api->getUsersGroups(['userid' => 'UserToLookup']));
+ $this->api->deleteUser('UserToDelete');
}
+ /**
+ * @expectedException \OCP\AppFramework\OCS\OCSException
+ * @expectedExceptionCode 998
+ */
public function testGetUsersGroupsTargetUserNotExisting() {
$loggedInUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock();
$this->userSession
@@ -1527,8 +1418,7 @@ class UsersTest extends OriginalTest {
->method('getUser')
->will($this->returnValue($loggedInUser));
- $expected = new \OC\OCS\Result(null, 998);
- $this->assertEquals($expected, $this->api->getUsersGroups(['userid' => 'UserToLookup']));
+ $this->api->getUsersGroups('UserToLookup');
}
public function testGetUsersGroupsSelfTargetted() {
@@ -1557,8 +1447,7 @@ class UsersTest extends OriginalTest {
->with($targetUser)
->will($this->returnValue(['DummyValue']));
- $expected = new \OC\OCS\Result(['groups' => ['DummyValue']]);
- $this->assertEquals($expected, $this->api->getUsersGroups(['userid' => 'UserToLookup']));
+ $this->assertEquals(['groups' => ['DummyValue']], $this->api->getUsersGroups('UserToLookup')->getData());
}
public function testGetUsersGroupsForAdminUser() {
@@ -1592,8 +1481,7 @@ class UsersTest extends OriginalTest {
->with('admin')
->will($this->returnValue(true));
- $expected = new \OC\OCS\Result(['groups' => ['DummyValue']]);
- $this->assertEquals($expected, $this->api->getUsersGroups(['userid' => 'UserToLookup']));
+ $this->assertEquals(['groups' => ['DummyValue']], $this->api->getUsersGroups('UserToLookup')->getData());
}
public function testGetUsersGroupsForSubAdminUserAndUserIsAccessible() {
@@ -1653,11 +1541,13 @@ class UsersTest extends OriginalTest {
->with($targetUser)
->will($this->returnValue(['Group1']));
- $expected = new \OC\OCS\Result(['groups' => ['Group1']]);
- $this->assertEquals($expected, $this->api->getUsersGroups(['userid' => 'UserToLookup']));
+ $this->assertEquals(['groups' => ['Group1']], $this->api->getUsersGroups('UserToLookup')->getData());
}
-
+ /**
+ * @expectedException \OCP\AppFramework\OCS\OCSException
+ * @expectedExceptionCode 997
+ */
public function testGetUsersGroupsForSubAdminUserAndUserIsInaccessible() {
$loggedInUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock();
$loggedInUser
@@ -1700,137 +1590,64 @@ class UsersTest extends OriginalTest {
->with($targetUser)
->will($this->returnValue(['Group1']));
- $expected = new \OC\OCS\Result(null, 997);
- $this->assertEquals($expected, $this->api->getUsersGroups(['userid' => 'UserToLookup']));
- }
-
- public function testAddToGroupNotLoggedIn() {
- $this->userSession
- ->expects($this->once())
- ->method('getUser')
- ->will($this->returnValue(null));
-
- $expected = new \OC\OCS\Result(null, 997);
- $this->assertEquals($expected, $this->api->addToGroup([]));
+ $this->api->getUsersGroups('UserToLookup');
}
+ /**
+ * @expectedException \OCP\AppFramework\OCS\OCSException
+ * @expectedExceptionCode 102
+ */
public function testAddToGroupWithTargetGroupNotExisting() {
- $_POST['groupid'] = 'GroupToAddTo';
-
- $loggedInUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock();
- $loggedInUser
- ->expects($this->once())
- ->method('getUID')
- ->will($this->returnValue('admin'));
- $this->userSession
- ->expects($this->once())
- ->method('getUser')
- ->will($this->returnValue($loggedInUser));
$this->groupManager
->expects($this->once())
->method('get')
->with('GroupToAddTo')
->will($this->returnValue(null));
- $this->groupManager
- ->expects($this->once())
- ->method('isAdmin')
- ->with('admin')
- ->will($this->returnValue(true));
- $expected = new \OC\OCS\Result(null, 102);
- $this->assertEquals($expected, $this->api->addToGroup(['userid' => 'TargetUser']));
+ $this->api->addToGroup('TargetUser', 'GroupToAddTo');
}
+ /**
+ * @expectedException \OCP\AppFramework\OCS\OCSException
+ * @expectedExceptionCode 101
+ */
public function testAddToGroupWithNoGroupSpecified() {
- $loggedInUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock();
- $loggedInUser
- ->expects($this->once())
- ->method('getUID')
- ->will($this->returnValue('admin'));
- $this->userSession
- ->expects($this->once())
- ->method('getUser')
- ->will($this->returnValue($loggedInUser));
- $this->groupManager
- ->expects($this->once())
- ->method('isAdmin')
- ->with('admin')
- ->will($this->returnValue(true));
-
- $expected = new \OC\OCS\Result(null, 101);
- $this->assertEquals($expected, $this->api->addToGroup(['userid' => 'TargetUser']));
+ $this->api->addToGroup('TargetUser');
}
+ /**
+ * @expectedException \OCP\AppFramework\OCS\OCSException
+ * @expectedExceptionCode 103
+ */
public function testAddToGroupWithTargetUserNotExisting() {
- $_POST['groupid'] = 'GroupToAddTo';
-
- $loggedInUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock();
- $loggedInUser
- ->expects($this->once())
- ->method('getUID')
- ->will($this->returnValue('admin'));
$targetGroup = $this->getMockBuilder('\OCP\IGroup')->disableOriginalConstructor()->getMock();
- $this->userSession
- ->expects($this->once())
- ->method('getUser')
- ->will($this->returnValue($loggedInUser));
$this->groupManager
->expects($this->once())
->method('get')
->with('GroupToAddTo')
->will($this->returnValue($targetGroup));
- $this->groupManager
- ->expects($this->once())
- ->method('isAdmin')
- ->with('admin')
- ->will($this->returnValue(true));
-
- $expected = new \OC\OCS\Result(null, 103);
- $this->assertEquals($expected, $this->api->addToGroup(['userid' => 'TargetUser']));
- }
-
- public function testAddToGroupWithoutPermission() {
- $_POST['groupid'] = 'GroupToAddTo';
-
- $loggedInUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock();
- $loggedInUser
- ->expects($this->once())
- ->method('getUID')
- ->will($this->returnValue('admin'));
- $this->userSession
- ->expects($this->once())
- ->method('getUser')
- ->will($this->returnValue($loggedInUser));
- $this->groupManager
- ->expects($this->once())
- ->method('isAdmin')
- ->with('admin')
- ->will($this->returnValue(false));
- $expected = new \OC\OCS\Result(null, 997);
- $this->assertEquals($expected, $this->api->addToGroup(['userid' => 'TargetUser']));
- }
-
- public function testRemoveFromGroupWithoutLogIn() {
- $this->userSession
- ->expects($this->once())
- ->method('getUser')
- ->will($this->returnValue(null));
-
- $expected = new \OC\OCS\Result(null, 997);
- $this->assertEquals($expected, $this->api->removeFromGroup(['userid' => 'TargetUser', '_delete' => ['groupid' => 'TargetGroup']]));
+ $this->api->addToGroup('TargetUser', 'GroupToAddTo');
}
+ /**
+ * @expectedException \OCP\AppFramework\OCS\OCSException
+ * @expectedExceptionCode 101
+ */
public function testRemoveFromGroupWithNoTargetGroup() {
$loggedInUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock();
$this->userSession
->expects($this->once())
->method('getUser')
->will($this->returnValue($loggedInUser));
- $expected = new \OC\OCS\Result(null, 101);
- $this->assertEquals($expected, $this->api->removeFromGroup(['userid' => 'TargetUser', '_delete' => []]));
+
+ $this->api->removeFromGroup('TargetUser', null);
}
+ /**
+ * @expectedException \OCP\AppFramework\OCS\OCSException
+ * @expectedExceptionCode 102
+ */
public function testRemoveFromGroupWithNotExistingTargetGroup() {
$loggedInUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock();
$this->userSession
@@ -1843,10 +1660,13 @@ class UsersTest extends OriginalTest {
->with('TargetGroup')
->will($this->returnValue(null));
- $expected = new \OC\OCS\Result(null, 102);
- $this->assertEquals($expected, $this->api->removeFromGroup(['userid' => 'TargetUser', '_delete' => ['groupid' => 'TargetGroup']]));
+ $this->api->removeFromGroup('TargetUser', 'TargetGroup');
}
+ /**
+ * @expectedException \OCP\AppFramework\OCS\OCSException
+ * @expectedExceptionCode 103
+ */
public function testRemoveFromGroupWithNotExistingTargetUser() {
$loggedInUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock();
$targetGroup = $this->getMockBuilder('\OCP\IGroup')->disableOriginalConstructor()->getMock();
@@ -1865,10 +1685,13 @@ class UsersTest extends OriginalTest {
->with('TargetUser')
->will($this->returnValue(null));
- $expected = new \OC\OCS\Result(null, 103);
- $this->assertEquals($expected, $this->api->removeFromGroup(['userid' => 'TargetUser', '_delete' => ['groupid' => 'TargetGroup']]));
+ $this->api->removeFromGroup('TargetUser', 'TargetGroup');
}
+ /**
+ * @expectedException \OCP\AppFramework\OCS\OCSException
+ * @expectedExceptionCode 104
+ */
public function testRemoveFromGroupWithoutPermission() {
$loggedInUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock();
$loggedInUser
@@ -1903,10 +1726,14 @@ class UsersTest extends OriginalTest {
->with('unauthorizedUser')
->will($this->returnValue(false));
- $expected = new \OC\OCS\Result(null, 104);
- $this->assertEquals($expected, $this->api->removeFromGroup(['userid' => 'TargetUser', '_delete' => ['groupid' => 'TargetGroup']]));
+ $this->api->removeFromGroup('TargetUser', 'TargetGroup');
}
+ /**
+ * @expectedException \OCP\AppFramework\OCS\OCSException
+ * @expectedExceptionCode 105
+ * @expectedExceptionMessage Cannot remove yourself from the admin group
+ */
public function testRemoveFromGroupAsAdminFromAdmin() {
$loggedInUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock();
$loggedInUser
@@ -1945,10 +1772,14 @@ class UsersTest extends OriginalTest {
->with('admin')
->will($this->returnValue(true));
- $expected = new \OC\OCS\Result(null, 105, 'Cannot remove yourself from the admin group');
- $this->assertEquals($expected, $this->api->removeFromGroup(['userid' => 'admin', '_delete' => ['groupid' => 'admin']]));
+ $this->api->removeFromGroup('admin', 'admin');
}
+ /**
+ * @expectedException \OCP\AppFramework\OCS\OCSException
+ * @expectedExceptionCode 105
+ * @expectedExceptionMessage Cannot remove yourself from this group as you are a SubAdmin
+ */
public function testRemoveFromGroupAsSubAdminFromSubAdmin() {
$loggedInUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock();
$loggedInUser
@@ -1997,8 +1828,7 @@ class UsersTest extends OriginalTest {
->with('subadmin')
->will($this->returnValue(false));
- $expected = new \OC\OCS\Result(null, 105, 'Cannot remove yourself from this group as you are a SubAdmin');
- $this->assertEquals($expected, $this->api->removeFromGroup(['userid' => 'subadmin', '_delete' => ['groupid' => 'subadmin']]));
+ $this->api->removeFromGroup('subadmin', 'subadmin');
}
public function testRemoveFromGroupSuccessful() {
@@ -2039,10 +1869,14 @@ class UsersTest extends OriginalTest {
->method('removeUser')
->with($targetUser);
- $expected = new \OC\OCS\Result(null, 100);
- $this->assertEquals($expected, $this->api->removeFromGroup(['userid' => 'AnotherUser', '_delete' => ['groupid' => 'admin']]));
+ $this->assertEquals([], $this->api->removeFromGroup('AnotherUser', 'admin')->getData());
}
+ /**
+ * @expectedException \OCP\AppFramework\OCS\OCSException
+ * @expectedExceptionCode 101
+ * @expectedExceptionMessage User does not exist
+ */
public function testAddSubAdminWithNotExistingTargetUser() {
$this->userManager
->expects($this->once())
@@ -2050,12 +1884,15 @@ class UsersTest extends OriginalTest {
->with('NotExistingUser')
->will($this->returnValue(null));
- $expected = new \OC\OCS\Result(null, 101, 'User does not exist');
- $this->assertEquals($expected, $this->api->addSubAdmin(['userid' => 'NotExistingUser']));
+ $this->api->addSubAdmin('NotExistingUser', null);
}
+ /**
+ * @expectedException \OCP\AppFramework\OCS\OCSException
+ * @expectedExceptionCode 102
+ * @expectedExceptionMessage Group:NotExistingGroup does not exist
+ */
public function testAddSubAdminWithNotExistingTargetGroup() {
- $_POST['groupid'] = 'NotExistingGroup';
$targetUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock();
$this->userManager
@@ -2069,13 +1906,15 @@ class UsersTest extends OriginalTest {
->with('NotExistingGroup')
->will($this->returnValue(null));
- $expected = new \OC\OCS\Result(null, 102, 'Group:NotExistingGroup does not exist');
- $this->assertEquals($expected, $this->api->addSubAdmin(['userid' => 'ExistingUser']));
+ $this->api->addSubAdmin('ExistingUser', 'NotExistingGroup');
}
+ /**
+ * @expectedException \OCP\AppFramework\OCS\OCSException
+ * @expectedExceptionCode 103
+ * @expectedExceptionMessage Cannot create subadmins for admin group
+ */
public function testAddSubAdminToAdminGroup() {
- $_POST['groupid'] = 'ADmiN';
-
$targetUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock();
$targetGroup = $this->getMockBuilder('\OCP\IGroup')->disableOriginalConstructor()->getMock();
$this->userManager
@@ -2089,13 +1928,10 @@ class UsersTest extends OriginalTest {
->with('ADmiN')
->will($this->returnValue($targetGroup));
- $expected = new \OC\OCS\Result(null, 103, 'Cannot create subadmins for admin group');
- $this->assertEquals($expected, $this->api->addSubAdmin(['userid' => 'ExistingUser']));
+ $this->api->addSubAdmin('ExistingUser', 'ADmiN');
}
public function testAddSubAdminTwice() {
- $_POST['groupid'] = 'TargetGroup';
-
$targetUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock();
$targetGroup = $this->getMockBuilder('\OCP\IGroup')->disableOriginalConstructor()->getMock();
$this->userManager
@@ -2120,13 +1956,10 @@ class UsersTest extends OriginalTest {
->method('getSubAdmin')
->will($this->returnValue($subAdminManager));
- $expected = new \OC\OCS\Result(null, 100);
- $this->assertEquals($expected, $this->api->addSubAdmin(['userid' => 'ExistingUser']));
+ $this->assertEquals([], $this->api->addSubAdmin('ExistingUser', 'TargetGroup')->getData());
}
public function testAddSubAdminSuccessful() {
- $_POST['groupid'] = 'TargetGroup';
-
$targetUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock();
$targetGroup = $this->getMockBuilder('\OCP\IGroup')->disableOriginalConstructor()->getMock();
$this->userManager
@@ -2156,13 +1989,15 @@ class UsersTest extends OriginalTest {
->method('getSubAdmin')
->will($this->returnValue($subAdminManager));
- $expected = new \OC\OCS\Result(null, 100);
- $this->assertEquals($expected, $this->api->addSubAdmin(['userid' => 'ExistingUser']));
+ $this->assertEquals([], $this->api->addSubAdmin('ExistingUser', 'TargetGroup')->getData());
}
+ /**
+ * @expectedException \OCP\AppFramework\OCS\OCSException
+ * @expectedExceptionCode 103
+ * @expectedExceptionMessage Unknown error occurred
+ */
public function testAddSubAdminUnsuccessful() {
- $_POST['groupid'] = 'TargetGroup';
-
$targetUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock();
$targetGroup = $this->getMockBuilder('\OCP\IGroup')->disableOriginalConstructor()->getMock();
$this->userManager
@@ -2192,10 +2027,14 @@ class UsersTest extends OriginalTest {
->method('getSubAdmin')
->will($this->returnValue($subAdminManager));
- $expected = new \OC\OCS\Result(null, 103, 'Unknown error occurred');
- $this->assertEquals($expected, $this->api->addSubAdmin(['userid' => 'ExistingUser']));
+ $this->api->addSubAdmin('ExistingUser', 'TargetGroup');
}
+ /**
+ * @expectedException \OCP\AppFramework\OCS\OCSException
+ * @expectedExceptionCode 101
+ * @expectedExceptionMessage User does not exist
+ */
public function testRemoveSubAdminNotExistingTargetUser() {
$this->userManager
->expects($this->once())
@@ -2203,10 +2042,14 @@ class UsersTest extends OriginalTest {
->with('NotExistingUser')
->will($this->returnValue(null));
- $expected = new \OC\OCS\Result(null, 101, 'User does not exist');
- $this->assertEquals($expected, $this->api->removeSubAdmin(['userid' => 'NotExistingUser', '_delete' => ['groupid' => 'GroupToDeleteFrom']]));
+ $this->api->removeSubAdmin('NotExistingUser', 'GroupToDeleteFrom');
}
+ /**
+ * @expectedException \OCP\AppFramework\OCS\OCSException
+ * @expectedExceptionCode 101
+ * @expectedExceptionMessage Group does not exist
+ */
public function testRemoveSubAdminNotExistingTargetGroup() {
$targetUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock();
$this->userManager
@@ -2220,10 +2063,15 @@ class UsersTest extends OriginalTest {
->with('GroupToDeleteFrom')
->will($this->returnValue(null));
- $expected = new \OC\OCS\Result(null, 101, 'Group does not exist');
- $this->assertEquals($expected, $this->api->removeSubAdmin(['userid' => 'ExistingUser', '_delete' => ['groupid' => 'GroupToDeleteFrom']]));
+ $this->api->removeSubAdmin('ExistingUser', 'GroupToDeleteFrom');
}
+
+ /**
+ * @expectedException \OCP\AppFramework\OCS\OCSException
+ * @expectedExceptionCode 102
+ * @expectedExceptionMessage User is not a subadmin of this group
+ */
public function testRemoveSubAdminFromNotASubadmin() {
$targetUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock();
$targetGroup = $this->getMockBuilder('\OCP\IGroup')->disableOriginalConstructor()->getMock();
@@ -2249,8 +2097,7 @@ class UsersTest extends OriginalTest {
->method('getSubAdmin')
->will($this->returnValue($subAdminManager));
- $expected = new \OC\OCS\Result(null, 102, 'User is not a subadmin of this group');
- $this->assertEquals($expected, $this->api->removeSubAdmin(['userid' => 'ExistingUser', '_delete' => ['groupid' => 'GroupToDeleteFrom']]));
+ $this->api->removeSubAdmin('ExistingUser', 'GroupToDeleteFrom');
}
public function testRemoveSubAdminSuccessful() {
@@ -2283,10 +2130,14 @@ class UsersTest extends OriginalTest {
->method('getSubAdmin')
->will($this->returnValue($subAdminManager));
- $expected = new \OC\OCS\Result(null, 100);
- $this->assertEquals($expected, $this->api->removeSubAdmin(['userid' => 'ExistingUser', '_delete' => ['groupid' => 'GroupToDeleteFrom']]));
+ $this->assertEquals([], $this->api->removeSubAdmin('ExistingUser', 'GroupToDeleteFrom')->getData());
}
+ /**
+ * @expectedException \OCP\AppFramework\OCS\OCSException
+ * @expectedExceptionCode 103
+ * @expectedExceptionMessage Unknown error occurred
+ */
public function testRemoveSubAdminUnsuccessful() {
$targetUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock();
$targetGroup = $this->getMockBuilder('\OCP\IGroup')->disableOriginalConstructor()->getMock();
@@ -2317,10 +2168,14 @@ class UsersTest extends OriginalTest {
->method('getSubAdmin')
->will($this->returnValue($subAdminManager));
- $expected = new \OC\OCS\Result(null, 103, 'Unknown error occurred');
- $this->assertEquals($expected, $this->api->removeSubAdmin(['userid' => 'ExistingUser', '_delete' => ['groupid' => 'GroupToDeleteFrom']]));
+ $this->api->removeSubAdmin('ExistingUser', 'GroupToDeleteFrom');
}
+ /**
+ * @expectedException \OCP\AppFramework\OCS\OCSException
+ * @expectedExceptionCode 101
+ * @expectedExceptionMessage User does not exist
+ */
public function testGetUserSubAdminGroupsNotExistingTargetUser() {
$this->userManager
->expects($this->once())
@@ -2328,8 +2183,7 @@ class UsersTest extends OriginalTest {
->with('RequestedUser')
->will($this->returnValue(null));
- $expected = new \OC\OCS\Result(null, 101, 'User does not exist');
- $this->assertEquals($expected, $this->api->getUserSubAdminGroups(['userid' => 'RequestedUser']));
+ $this->api->getUserSubAdminGroups('RequestedUser');
}
public function testGetUserSubAdminGroupsWithGroups() {
@@ -2356,10 +2210,14 @@ class UsersTest extends OriginalTest {
->method('getSubAdmin')
->will($this->returnValue($subAdminManager));
- $expected = new \OC\OCS\Result(['TargetGroup'], 100);
- $this->assertEquals($expected, $this->api->getUserSubAdminGroups(['userid' => 'RequestedUser']));
+ $this->assertEquals(['TargetGroup'], $this->api->getUserSubAdminGroups('RequestedUser')->getData());
}
+ /**
+ * @expectedException \OCP\AppFramework\OCS\OCSException
+ * @expectedExceptionCode 102
+ * @expectedExceptionMessage Unknown error occurred
+ */
public function testGetUserSubAdminGroupsWithoutGroups() {
$targetUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock();
$this->userManager
@@ -2379,8 +2237,7 @@ class UsersTest extends OriginalTest {
->method('getSubAdmin')
->will($this->returnValue($subAdminManager));
- $expected = new \OC\OCS\Result(null, 102, 'Unknown error occurred');
- $this->assertEquals($expected, $this->api->getUserSubAdminGroups(['userid' => 'RequestedUser']));
+ $this->api->getUserSubAdminGroups('RequestedUser');
}
public function testEnableUser() {
@@ -2407,8 +2264,7 @@ class UsersTest extends OriginalTest {
->method('isAdmin')
->will($this->returnValue(true));
- $expected = new \OC\OCS\Result(null, 100);
- $this->assertEquals($expected, $this->api->enableUser(['userid' => 'RequestedUser']));
+ $this->assertEquals([], $this->api->enableUser('RequestedUser')->getData());
}
public function testDisableUser() {
@@ -2435,7 +2291,6 @@ class UsersTest extends OriginalTest {
->method('isAdmin')
->will($this->returnValue(true));
- $expected = new \OC\OCS\Result(null, 100);
- $this->assertEquals($expected, $this->api->disableUser(['userid' => 'RequestedUser']));
+ $this->assertEquals([], $this->api->disableUser('RequestedUser')->getData());
}
}