mirror of
https://git.code.sf.net/p/seeddms/code
synced 2025-05-16 14:41:39 +00:00
add methods changeUserQuota, setFolderOwner, setFolderOwner
This commit is contained in:
parent
b9d5c31211
commit
7e4b4fd3ea
|
@ -2194,6 +2194,92 @@ class RestapiController { /* {{{ */
|
||||||
return $response->withJson(array('success'=>true, 'message'=>'', 'data'=>''), 200);
|
return $response->withJson(array('success'=>true, 'message'=>'', 'data'=>''), 200);
|
||||||
} /* }}} */
|
} /* }}} */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Updates the quota of an existing account
|
||||||
|
*
|
||||||
|
* @param <type> $id The user name or numerical identifier
|
||||||
|
*/
|
||||||
|
function changeUserQuota($request, $response, $args) { /* {{{ */
|
||||||
|
$dms = $this->container->dms;
|
||||||
|
$userobj = $this->container->userobj;
|
||||||
|
|
||||||
|
$check = $this->checkIfAdmin($request, $response);
|
||||||
|
if($check !== true)
|
||||||
|
return $check;
|
||||||
|
|
||||||
|
$params = $request->getParsedBody();
|
||||||
|
if ($params['quota'] == null) {
|
||||||
|
return $response->withJson(array('success'=>false, 'message'=>'You must supply a new quota', 'data'=>''), 400);
|
||||||
|
}
|
||||||
|
|
||||||
|
$newQuota = $params['quota'];
|
||||||
|
|
||||||
|
if(ctype_digit($args['id']))
|
||||||
|
$account = $dms->getUser($args['id']);
|
||||||
|
else {
|
||||||
|
$account = $dms->getUserByLogin($args['id']);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* User not found
|
||||||
|
*/
|
||||||
|
if (!$account) {
|
||||||
|
return $response->withJson(array('success'=>false, 'message'=>'', 'data'=>'User not found.'), 404);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$operation = $account->setQuota($newQuota);
|
||||||
|
|
||||||
|
if (!$operation){
|
||||||
|
return $response->withJson(array('success'=>false, 'message'=>'', 'data'=>'Could not change quota.'), 404);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $response->withJson(array('success'=>true, 'message'=>'', 'data'=>''), 200);
|
||||||
|
} /* }}} */
|
||||||
|
|
||||||
|
function changeUserHomefolder($request, $response, $args) { /* {{{ */
|
||||||
|
$dms = $this->container->dms;
|
||||||
|
$userobj = $this->container->userobj;
|
||||||
|
|
||||||
|
$check = $this->checkIfAdmin($request, $response);
|
||||||
|
if($check !== true)
|
||||||
|
return $check;
|
||||||
|
|
||||||
|
$params = $request->getParsedBody();
|
||||||
|
if ($params['homefolder'] == null) {
|
||||||
|
return $response->withJson(array('success'=>false, 'message'=>'You must supply a new home folder', 'data'=>''), 400);
|
||||||
|
}
|
||||||
|
|
||||||
|
$newHomefolderId = (int) $params['homefolder'];
|
||||||
|
$newHomefolder = $dms->getFolder($newHomefolderId);
|
||||||
|
if (!$newHomefolder) {
|
||||||
|
return $response->withJson(array('success'=>false, 'message'=>'', 'data'=>'Folder not found.'), 404);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(ctype_digit($args['id']))
|
||||||
|
$account = $dms->getUser($args['id']);
|
||||||
|
else {
|
||||||
|
$account = $dms->getUserByLogin($args['id']);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* User not found
|
||||||
|
*/
|
||||||
|
if (!$account) {
|
||||||
|
return $response->withJson(array('success'=>false, 'message'=>'', 'data'=>'User not found.'), 404);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$operation = $account->setHomeFolder($newHomefolder->getId());
|
||||||
|
|
||||||
|
if (!$operation){
|
||||||
|
return $response->withJson(array('success'=>false, 'message'=>'', 'data'=>'Could not change homefolder.'), 404);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $response->withJson(array('success'=>true, 'message'=>'', 'data'=>''), 200);
|
||||||
|
} /* }}} */
|
||||||
|
|
||||||
function getUserById($request, $response, $args) { /* {{{ */
|
function getUserById($request, $response, $args) { /* {{{ */
|
||||||
$dms = $this->container->dms;
|
$dms = $this->container->dms;
|
||||||
$userobj = $this->container->userobj;
|
$userobj = $this->container->userobj;
|
||||||
|
@ -2435,6 +2521,46 @@ class RestapiController { /* {{{ */
|
||||||
}
|
}
|
||||||
} /* }}} */
|
} /* }}} */
|
||||||
|
|
||||||
|
function setFolderOwner($request, $response, $args) { /* {{{ */
|
||||||
|
$dms = $this->container->dms;
|
||||||
|
$userobj = $this->container->userobj;
|
||||||
|
|
||||||
|
if(!$userobj) {
|
||||||
|
return $response->withJson(array('success'=>false, 'message'=>'Not logged in', 'data'=>''), 403);
|
||||||
|
}
|
||||||
|
if(!$userobj->isAdmin()) {
|
||||||
|
return $response->withJson(array('success'=>false, 'message'=>'No access on folder', 'data'=>''), 403);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!ctype_digit($args['id']) || $args['id'] == 0) {
|
||||||
|
return $response->withJson(array('success'=>false, 'message'=>'No folder given', 'data'=>''), 400);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(!ctype_digit($args['userid']) || $args['userid'] == 0) {
|
||||||
|
return $response->withJson(array('success'=>false, 'message'=>'No user given', 'data'=>''), 400);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$owner = $dms->getUser($args['userid']);
|
||||||
|
$folder = $dms->getFolder($args['id']);
|
||||||
|
if($folder && $owner) {
|
||||||
|
if($folder->getAccessMode($userobj, 'setDocumentOwner') > M_READ) {
|
||||||
|
if ($folder->setOwner($owner)){
|
||||||
|
return $response->withJson(array('success'=>true, 'message'=>'', 'data'=>''), 201);
|
||||||
|
} else {
|
||||||
|
return $response->withJson(array('success'=>false, 'message'=>'Could not set owner of folder', 'data'=>''), 500);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return $response->withJson(array('success'=>false, 'message'=>'No access on folder', 'data'=>''), 403);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if(!$doc)
|
||||||
|
return $response->withJson(array('success'=>false, 'message'=>'No such folder', 'data'=>''), 404);
|
||||||
|
if(!$owner)
|
||||||
|
return $response->withJson(array('success'=>false, 'message'=>'No such user', 'data'=>''), 404);
|
||||||
|
return $response->withJson(array('success'=>false, 'message'=>'Could not find user or folder', 'data'=>''), 500);
|
||||||
|
}
|
||||||
|
} /* }}} */
|
||||||
|
|
||||||
function addUserAccessToFolder($request, $response, $args) { /* {{{ */
|
function addUserAccessToFolder($request, $response, $args) { /* {{{ */
|
||||||
return $this->changeFolderAccess($request, $response, $args, 'add', 'user');
|
return $this->changeFolderAccess($request, $response, $args, 'add', 'user');
|
||||||
} /* }}} */
|
} /* }}} */
|
||||||
|
@ -2972,6 +3098,8 @@ $app->post('/users', \RestapiController::class.':createUser');
|
||||||
$app->get('/users/{id}', \RestapiController::class.':getUserById');
|
$app->get('/users/{id}', \RestapiController::class.':getUserById');
|
||||||
$app->put('/users/{id}/disable', \RestapiController::class.':setDisabledUser');
|
$app->put('/users/{id}/disable', \RestapiController::class.':setDisabledUser');
|
||||||
$app->put('/users/{id}/password', \RestapiController::class.':changeUserPassword');
|
$app->put('/users/{id}/password', \RestapiController::class.':changeUserPassword');
|
||||||
|
$app->put('/users/{id}/quota', \RestapiController::class.':changeUserQuota');
|
||||||
|
$app->put('/users/{id}/homefolder', \RestapiController::class.':changeUserHomefolder');
|
||||||
$app->post('/groups', \RestapiController::class.':createGroup');
|
$app->post('/groups', \RestapiController::class.':createGroup');
|
||||||
$app->get('/groups', \RestapiController::class.':getGroups');
|
$app->get('/groups', \RestapiController::class.':getGroups');
|
||||||
$app->delete('/groups/{id}', \RestapiController::class.':deleteGroup');
|
$app->delete('/groups/{id}', \RestapiController::class.':deleteGroup');
|
||||||
|
@ -2979,6 +3107,7 @@ $app->get('/groups/{id}', \RestapiController::class.':getGroup');
|
||||||
$app->put('/groups/{id}/addUser', \RestapiController::class.':addUserToGroup');
|
$app->put('/groups/{id}/addUser', \RestapiController::class.':addUserToGroup');
|
||||||
$app->put('/groups/{id}/removeUser', \RestapiController::class.':removeUserFromGroup');
|
$app->put('/groups/{id}/removeUser', \RestapiController::class.':removeUserFromGroup');
|
||||||
$app->put('/folder/{id}/setInherit', \RestapiController::class.':setFolderInheritsAccess');
|
$app->put('/folder/{id}/setInherit', \RestapiController::class.':setFolderInheritsAccess');
|
||||||
|
$app->put('/folder/{id}/owner/{userid}', \RestapiController::class.':setFolderOwner');
|
||||||
$app->put('/folder/{id}/access/group/add', \RestapiController::class.':addGroupAccessToFolder'); //
|
$app->put('/folder/{id}/access/group/add', \RestapiController::class.':addGroupAccessToFolder'); //
|
||||||
$app->put('/folder/{id}/access/user/add', \RestapiController::class.':addUserAccessToFolder'); //
|
$app->put('/folder/{id}/access/user/add', \RestapiController::class.':addUserAccessToFolder'); //
|
||||||
$app->put('/folder/{id}/access/group/remove', \RestapiController::class.':removeGroupAccessFromFolder');
|
$app->put('/folder/{id}/access/group/remove', \RestapiController::class.':removeGroupAccessFromFolder');
|
||||||
|
|
Loading…
Reference in New Issue
Block a user