add addDocumentLink()

This commit is contained in:
Uwe Steinmann 2019-02-12 21:37:21 +01:00
parent 32c09408d4
commit 6e2fa5022a

View File

@ -749,6 +749,36 @@ function uploadDocumentFile($request, $response, $args) { /* {{{ */
}
} /* }}} */
function addDocumentLink($request, $response, $args) { /* {{{ */
global $dms, $userobj;
if(!$userobj) {
return $response->withJson(array('success'=>false, 'message'=>'Not logged in', 'data'=>''), 403);
}
if(!ctype_digit($args['id']) || $args['id'] == 0) {
return $response->withJson(array('success'=>false, 'message'=>'No source document given', 'data'=>''), 400);
return;
}
$sourcedoc = $dms->getDocument($args['id']);
$targetdoc = $dms->getDocument($args['documentid']);
if($sourcedoc && $targetdoc) {
if($sourcedoc->getAccessMode($userobj, 'addDocumentLink') >= M_READ) {
$params = $request->getParsedBody();
$public = !isset($params['public']) ? true : false;
if ($sourcedoc->addDocumentLink($targetdoc->getId(), $userobj->getID(), $public)){
return $response->withJson(array('success'=>true, 'message'=>'', 'data'=>$rec), 201);
} else {
return $response->withJson(array('success'=>false, 'message'=>'Could not create document link', 'data'=>''), 500);
}
} else {
return $response->withJson(array('success'=>false, 'message'=>'No access on source document', 'data'=>''), 403);
}
} else {
return $response->withJson(array('success'=>false, 'message'=>'Could not find source or target document', 'data'=>''), 500);
}
} /* }}} */
function getDocument($request, $response, $args) { /* {{{ */
global $dms, $userobj;
$document = $dms->getDocument($args['id']);
@ -1975,6 +2005,7 @@ $app->get('/document/{id}/version/{version}', 'getDocumentVersion');
$app->get('/document/{id}/files', 'getDocumentFiles');
$app->get('/document/{id}/file/{fileid}', 'getDocumentFile');
$app->get('/document/{id}/links', 'getDocumentLinks');
$app->post('/document/{id}/link/{documentid}', 'addDocumentLink');
$app->get('/document/{id}/attributes', 'getDocumentAttributes');
$app->get('/document/{id}/preview/{version}/{width}', 'getDocumentPreview');
$app->delete('/document/{id}/categories', 'removeDocumentCategories');