diff --git a/restapi/index.php b/restapi/index.php index 74e5f637b..7f1eefb75 100644 --- a/restapi/index.php +++ b/restapi/index.php @@ -595,6 +595,13 @@ class RestapiController { /* {{{ */ 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']); if($mfolder) { $uploadedFiles = $request->getUploadedFiles(); @@ -692,6 +699,7 @@ class RestapiController { /* {{{ */ function updateDocument($request, $response, $args) { /* {{{ */ $dms = $this->container->dms; $userobj = $this->container->userobj; + $settings = $this->container->config; if(!$userobj) { 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); } + 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']); if($document) { if ($document->getAccessMode($userobj, 'updateDocument') >= M_READWRITE) { @@ -726,7 +741,13 @@ class RestapiController { /* {{{ */ $file_info = array_pop($uploadedFiles); if ($origfilename == null) $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); $userfiletype = finfo_file($finfo, $temp); $fileType = ".".pathinfo($origfilename, PATHINFO_EXTENSION); @@ -762,7 +783,15 @@ class RestapiController { /* {{{ */ if(!ctype_digit($args['id']) || $args['id'] == 0) { 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']); if($mfolder) { if ($mfolder->getAccessMode($userobj, 'addDocument') >= M_READWRITE) {