added check for duplicate folder and document names if turned on

This commit is contained in:
Uwe Steinmann 2019-07-01 11:49:17 +02:00
parent ad86df5fc5
commit 38413b671f

View File

@ -374,7 +374,7 @@ function getFolderChildren($request, $response, $args) { /* {{{ */
} /* }}} */
function createFolder($request, $response, $args) { /* {{{ */
global $dms, $userobj;
global $dms, $userobj, $settings;
if(!$userobj) {
return $response->withJson(array('success'=>false, 'message'=>'Not logged in', 'data'=>''), 403);
@ -410,6 +410,12 @@ function createFolder($request, $response, $args) { /* {{{ */
}
}
}
/* Check if name already exists in the folder */
if(!$settings->_enableDuplicateSubFolderNames) {
if($folder->hasSubFolderByName($params['name'])) {
return $response->withJson(array('success'=>false, 'message'=>getMLText("subfolder_duplicate_name"), 'data'=>''), 400);
}
}
if($folder = $parent->addSubFolder($params['name'], $comment, $userobj, $sequence, $newattrs)) {
$rec = __getFolderData($folder);
@ -506,7 +512,7 @@ function deleteFolder($request, $response, $args) { /* {{{ */
} /* }}} */
function uploadDocument($request, $response, $args) { /* {{{ */
global $dms, $userobj;
global $dms, $userobj, $settings;
if(!$userobj) {
return $response->withJson(array('success'=>false, 'message'=>'Not logged in', 'data'=>''), 403);
@ -571,6 +577,12 @@ function uploadDocument($request, $response, $args) { /* {{{ */
$origfilename = $file_info->getClientFilename();
if (trim($docname) == '')
$docname = $origfilename;
/* Check if name already exists in the folder */
if(!$settings->_enableDuplicateDocNames) {
if($mfolder->hasDocumentByName($docname)) {
return $response->withJson(array('success'=>false, 'message'=>getMLText("document_duplicate_name"), 'data'=>''), 400);
}
}
$temp = $file_info->file;
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$userfiletype = finfo_file($finfo, $temp);
@ -662,7 +674,7 @@ function updateDocument($request, $response, $args) { /* {{{ */
* Old upload method which uses put instead of post
*/
function uploadDocumentPut($request, $response, $args) { /* {{{ */
global $dms, $userobj;
global $dms, $userobj, $settings;
if(!$userobj) {
return $response->withJson(array('success'=>false, 'message'=>'Not logged in', 'data'=>''), 403);
@ -687,6 +699,12 @@ function uploadDocumentPut($request, $response, $args) { /* {{{ */
$userfiletype = finfo_file($finfo, $temp);
$fileType = ".".pathinfo($origfilename, PATHINFO_EXTENSION);
finfo_close($finfo);
/* Check if name already exists in the folder */
if(!$settings->_enableDuplicateDocNames) {
if($mfolder->hasDocumentByName($docname)) {
return $response->withJson(array('success'=>false, 'message'=>getMLText("document_duplicate_name"), 'data'=>''), 400);
}
}
$res = $mfolder->addDocument($docname, '', 0, $userobj, '', array(), $temp, $origfilename ? $origfilename : basename($temp), $fileType, $userfiletype, 0);
unlink($temp);
if($res) {