mirror of
https://git.code.sf.net/p/seeddms/code
synced 2025-02-11 09:35:00 +00:00
check for quota and duplicate content when uploading new doc or version
This commit is contained in:
parent
4ec36dc6db
commit
8be856e688
|
@ -595,6 +595,13 @@ class RestapiController { /* {{{ */
|
||||||
return $response->withJson(array('success'=>false, 'message'=>'No parent folder id given', 'data'=>''), 400);
|
return $response->withJson(array('success'=>false, 'message'=>'No parent folder id given', 'data'=>''), 400);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if($settings->_quota > 0) {
|
||||||
|
$remain = checkQuota($userobj);
|
||||||
|
if ($remain < 0) {
|
||||||
|
return $response->withJson(array('success'=>false, 'message'=>'Quota exceeded', 'data'=>''), 400);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$mfolder = $dms->getFolder($args['id']);
|
$mfolder = $dms->getFolder($args['id']);
|
||||||
if($mfolder) {
|
if($mfolder) {
|
||||||
$uploadedFiles = $request->getUploadedFiles();
|
$uploadedFiles = $request->getUploadedFiles();
|
||||||
|
@ -692,6 +699,7 @@ class RestapiController { /* {{{ */
|
||||||
function updateDocument($request, $response, $args) { /* {{{ */
|
function updateDocument($request, $response, $args) { /* {{{ */
|
||||||
$dms = $this->container->dms;
|
$dms = $this->container->dms;
|
||||||
$userobj = $this->container->userobj;
|
$userobj = $this->container->userobj;
|
||||||
|
$settings = $this->container->config;
|
||||||
|
|
||||||
if(!$userobj) {
|
if(!$userobj) {
|
||||||
return $response->withJson(array('success'=>false, 'message'=>'Not logged in', 'data'=>''), 403);
|
return $response->withJson(array('success'=>false, 'message'=>'Not logged in', 'data'=>''), 403);
|
||||||
|
@ -701,6 +709,13 @@ class RestapiController { /* {{{ */
|
||||||
return $response->withJson(array('success'=>false, 'message'=>'No document id given', 'data'=>''), 400);
|
return $response->withJson(array('success'=>false, 'message'=>'No document id given', 'data'=>''), 400);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if($settings->_quota > 0) {
|
||||||
|
$remain = checkQuota($userobj);
|
||||||
|
if ($remain < 0) {
|
||||||
|
return $response->withJson(array('success'=>false, 'message'=>'Quota exceeded', 'data'=>''), 400);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$document = $dms->getDocument($args['id']);
|
$document = $dms->getDocument($args['id']);
|
||||||
if($document) {
|
if($document) {
|
||||||
if ($document->getAccessMode($userobj, 'updateDocument') >= M_READWRITE) {
|
if ($document->getAccessMode($userobj, 'updateDocument') >= M_READWRITE) {
|
||||||
|
@ -726,7 +741,13 @@ class RestapiController { /* {{{ */
|
||||||
$file_info = array_pop($uploadedFiles);
|
$file_info = array_pop($uploadedFiles);
|
||||||
if ($origfilename == null)
|
if ($origfilename == null)
|
||||||
$origfilename = $file_info->getClientFilename();
|
$origfilename = $file_info->getClientFilename();
|
||||||
$temp = $file_info->file;
|
$temp = $file_info->file;
|
||||||
|
|
||||||
|
/* Check if the uploaded file is identical to last version */
|
||||||
|
$lc = $document->getLatestContent();
|
||||||
|
if($lc->getChecksum() == SeedDMS_Core_File::checksum($temp)) {
|
||||||
|
return $response->withJson(array('success'=>false, 'message'=>'Uploaded file identical to last version', 'data'=>''), 400);
|
||||||
|
}
|
||||||
$finfo = finfo_open(FILEINFO_MIME_TYPE);
|
$finfo = finfo_open(FILEINFO_MIME_TYPE);
|
||||||
$userfiletype = finfo_file($finfo, $temp);
|
$userfiletype = finfo_file($finfo, $temp);
|
||||||
$fileType = ".".pathinfo($origfilename, PATHINFO_EXTENSION);
|
$fileType = ".".pathinfo($origfilename, PATHINFO_EXTENSION);
|
||||||
|
@ -762,7 +783,15 @@ class RestapiController { /* {{{ */
|
||||||
|
|
||||||
if(!ctype_digit($args['id']) || $args['id'] == 0) {
|
if(!ctype_digit($args['id']) || $args['id'] == 0) {
|
||||||
return $response->withJson(array('success'=>false, 'message'=>'No document id given', 'data'=>''), 400);
|
return $response->withJson(array('success'=>false, 'message'=>'No document id given', 'data'=>''), 400);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if($settings->_quota > 0) {
|
||||||
|
$remain = checkQuota($userobj);
|
||||||
|
if ($remain < 0) {
|
||||||
|
return $response->withJson(array('success'=>false, 'message'=>'Quota exceeded', 'data'=>''), 400);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$mfolder = $dms->getFolder($args['id']);
|
$mfolder = $dms->getFolder($args['id']);
|
||||||
if($mfolder) {
|
if($mfolder) {
|
||||||
if ($mfolder->getAccessMode($userobj, 'addDocument') >= M_READWRITE) {
|
if ($mfolder->getAccessMode($userobj, 'addDocument') >= M_READWRITE) {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user