Merge branch 'seeddms-5.1.x' into seeddms-6.0.x

This commit is contained in:
Uwe Steinmann 2024-04-23 18:21:36 +02:00
commit 7a06b50e92

View File

@ -727,94 +727,94 @@ class RestapiController { /* {{{ */
return $response->withJson(array('success'=>false, 'message'=>getMLText("document_duplicate_name"), 'data'=>''), 409); return $response->withJson(array('success'=>false, 'message'=>getMLText("document_duplicate_name"), 'data'=>''), 409);
} }
} }
// Get the list of reviewers and approvers for this document. // Get the list of reviewers and approvers for this document.
$reviewers = array(); $reviewers = array();
$approvers = array(); $approvers = array();
$reviewers["i"] = array(); $reviewers["i"] = array();
$reviewers["g"] = array(); $reviewers["g"] = array();
$approvers["i"] = array(); $approvers["i"] = array();
$approvers["g"] = array(); $approvers["g"] = array();
$workflow = null; $workflow = null;
if($settings->_workflowMode == 'traditional' || $settings->_workflowMode == 'traditional_only_approval') { if($settings->_workflowMode == 'traditional' || $settings->_workflowMode == 'traditional_only_approval') {
// add mandatory reviewers/approvers // add mandatory reviewers/approvers
if($settings->_workflowMode == 'traditional') { if($settings->_workflowMode == 'traditional') {
$mreviewers = getMandatoryReviewers($mfolder, null, $userobj); $mreviewers = getMandatoryReviewers($mfolder, null, $userobj);
if($mreviewers['i']) if($mreviewers['i'])
$reviewers['i'] = array_merge($reviewers['i'], $mreviewers['i']); $reviewers['i'] = array_merge($reviewers['i'], $mreviewers['i']);
if($mreviewers['g']) if($mreviewers['g'])
$reviewers['g'] = array_merge($reviewers['g'], $mreviewers['g']); $reviewers['g'] = array_merge($reviewers['g'], $mreviewers['g']);
} }
$mapprovers = getMandatoryApprovers($mfolder, null, $userobj); $mapprovers = getMandatoryApprovers($mfolder, null, $userobj);
if($mapprovers['i']) if($mapprovers['i'])
$approvers['i'] = array_merge($approvers['i'], $mapprovers['i']); $approvers['i'] = array_merge($approvers['i'], $mapprovers['i']);
if($mapprovers['g']) if($mapprovers['g'])
$approvers['g'] = array_merge($approvers['g'], $mapprovers['g']); $approvers['g'] = array_merge($approvers['g'], $mapprovers['g']);
} elseif($settings->_workflowMode == 'advanced') { } elseif($settings->_workflowMode == 'advanced') {
if($workflows = $userobj->getMandatoryWorkflows()) { if($workflows = $userobj->getMandatoryWorkflows()) {
$workflow = array_shift($workflows); $workflow = array_shift($workflows);
} }
} }
$temp = $file_info->file; $temp = $file_info->file;
$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);
finfo_close($finfo); finfo_close($finfo);
$attributes_version = []; $attributes_version = [];
$notusers = []; $notusers = [];
$notgroups = []; $notgroups = [];
$controller = Controller::factory('AddDocument'); $controller = Controller::factory('AddDocument');
$controller->setParam('documentsource', 'restapi'); $controller->setParam('documentsource', 'restapi');
$controller->setParam('documentsourcedetails', null); $controller->setParam('documentsourcedetails', null);
$controller->setParam('dms', $dms); $controller->setParam('dms', $dms);
$controller->setParam('user', $userobj); $controller->setParam('user', $userobj);
$controller->setParam('folder', $mfolder); $controller->setParam('folder', $mfolder);
$controller->setParam('fulltextservice', $fulltextservice); $controller->setParam('fulltextservice', $fulltextservice);
$controller->setParam('name', $docname); $controller->setParam('name', $docname);
$controller->setParam('comment', $comment); $controller->setParam('comment', $comment);
$controller->setParam('expires', $expires); $controller->setParam('expires', $expires);
$controller->setParam('keywords', $keywords); $controller->setParam('keywords', $keywords);
$controller->setParam('categories', $cats); $controller->setParam('categories', $cats);
$controller->setParam('owner', $owner ? $owner : $userobj); $controller->setParam('owner', $owner ? $owner : $userobj);
$controller->setParam('userfiletmp', $temp); $controller->setParam('userfiletmp', $temp);
$controller->setParam('userfilename', $origfilename ? $origfilename : basename($temp)); $controller->setParam('userfilename', $origfilename ? $origfilename : basename($temp));
$controller->setParam('filetype', $fileType); $controller->setParam('filetype', $fileType);
$controller->setParam('userfiletype', $userfiletype); $controller->setParam('userfiletype', $userfiletype);
$controller->setParam('sequence', $sequence); $controller->setParam('sequence', $sequence);
$controller->setParam('reviewers', $reviewers); $controller->setParam('reviewers', $reviewers);
$controller->setParam('approvers', $approvers); $controller->setParam('approvers', $approvers);
$controller->setParam('reqversion', $reqversion); $controller->setParam('reqversion', $reqversion);
$controller->setParam('versioncomment', $version_comment); $controller->setParam('versioncomment', $version_comment);
$controller->setParam('attributes', $attributes); $controller->setParam('attributes', $attributes);
$controller->setParam('attributesversion', $attributes_version); $controller->setParam('attributesversion', $attributes_version);
$controller->setParam('workflow', $workflow); $controller->setParam('workflow', $workflow);
$controller->setParam('notificationgroups', $notgroups); $controller->setParam('notificationgroups', $notgroups);
$controller->setParam('notificationusers', $notusers); $controller->setParam('notificationusers', $notusers);
$controller->setParam('maxsizeforfulltext', $settings->_maxSizeForFullText); $controller->setParam('maxsizeforfulltext', $settings->_maxSizeForFullText);
$controller->setParam('defaultaccessdocs', $settings->_defaultAccessDocs); $controller->setParam('defaultaccessdocs', $settings->_defaultAccessDocs);
if(!($document = $controller())) { if(!($document = $controller())) {
$err = $controller->getErrorMsg(); $err = $controller->getErrorMsg();
if(is_string($err)) if(is_string($err))
$errmsg = getMLText($err); $errmsg = getMLText($err);
elseif(is_array($err)) { elseif(is_array($err)) {
$errmsg = getMLText($err[0], $err[1]); $errmsg = getMLText($err[0], $err[1]);
} else { } else {
$errmsg = $err; $errmsg = $err;
} }
unlink($temp); unlink($temp);
return $response->withJson(array('success'=>false, 'message'=>'Upload failed', 'data'=>''), 500); return $response->withJson(array('success'=>false, 'message'=>'Upload failed', 'data'=>''), 500);
} else { } else {
if($controller->hasHook('cleanUpDocument')) { if($controller->hasHook('cleanUpDocument')) {
$controller->callHook('cleanUpDocument', $document, $file); $controller->callHook('cleanUpDocument', $document, $file);
} }
// Send notification to subscribers of folder. // Send notification to subscribers of folder.
if($notifier) { if($notifier) {
$notifier->sendNewDocumentMail($document, $userobj); $notifier->sendNewDocumentMail($document, $userobj);
} }
unlink($temp); unlink($temp);
return $response->withJson(array('success'=>true, 'message'=>'Upload succeded', 'data'=>$this->__getLatestVersionData($document->getLatestContent())), 201); return $response->withJson(array('success'=>true, 'message'=>'Upload succeded', 'data'=>$this->__getLatestVersionData($document->getLatestContent())), 201);
} }
/* /*
$res = $mfolder->addDocument($docname, $comment, $expires, $owner ? $owner : $userobj, $keywords, $cats, $temp, $origfilename ? $origfilename : basename($temp), $fileType, $userfiletype, $sequence, array(), array(), $reqversion, $version_comment, $attributes); $res = $mfolder->addDocument($docname, $comment, $expires, $owner ? $owner : $userobj, $keywords, $cats, $temp, $origfilename ? $origfilename : basename($temp), $fileType, $userfiletype, $sequence, array(), array(), $reqversion, $version_comment, $attributes);
unlink($temp); unlink($temp);
if($res) { if($res) {
@ -825,8 +825,8 @@ class RestapiController { /* {{{ */
return $response->withJson(array('success'=>true, 'message'=>'Upload succeded', 'data'=>$this->__getLatestVersionData($doc->getLatestContent())), 201); return $response->withJson(array('success'=>true, 'message'=>'Upload succeded', 'data'=>$this->__getLatestVersionData($doc->getLatestContent())), 201);
} else { } else {
return $response->withJson(array('success'=>false, 'message'=>'Upload failed', 'data'=>''), 500); return $response->withJson(array('success'=>false, 'message'=>'Upload failed', 'data'=>''), 500);
} }
*/ */
} else { } else {
return $response->withJson(array('success'=>false, 'message'=>'No access', 'data'=>''), 403); return $response->withJson(array('success'=>false, 'message'=>'No access', 'data'=>''), 403);
} }
@ -2064,10 +2064,10 @@ class RestapiController { /* {{{ */
$theme = isset($params['theme']) ? $params['theme'] : null; $theme = isset($params['theme']) ? $params['theme'] : null;
$comment = isset($params['comment']) ? $params['comment'] : ''; $comment = isset($params['comment']) ? $params['comment'] : '';
$role = isset($params['role']) ? $params['role'] : 3; $role = isset($params['role']) ? $params['role'] : 3;
$roleobj = $role == 'admin' ? SeedDMS_Core_Role::getInstance(1, $dms) : ($role == 'guest' ? SeedDMS_Core_Role::getInstance(2, $dms) : SeedDMS_Core_Role::getInstance($role, $dms)); $roleobj = $role == 'admin' ? SeedDMS_Core_Role::getInstance(1, $dms) : ($role == 'guest' ? SeedDMS_Core_Role::getInstance(2, $dms) : SeedDMS_Core_Role::getInstance($role, $dms));
if(!$roleobj) { if(!$roleobj) {
return $response->withJson(array('success'=>false, 'message'=>'Missing role', 'data'=>''), 400); return $response->withJson(array('success'=>false, 'message'=>'Missing role', 'data'=>''), 400);
} }
$newAccount = $dms->addUser($userName, seed_pass_hash($password), $fullname, $email, $language, $theme, $comment, $roleobj); $newAccount = $dms->addUser($userName, seed_pass_hash($password), $fullname, $email, $language, $theme, $comment, $roleobj);
if ($newAccount === false) { if ($newAccount === false) {
@ -2098,8 +2098,8 @@ class RestapiController { /* {{{ */
} /* }}} */ } /* }}} */
/** /**
* Updates the password of an existing Account, the password * Updates the password of an existing Account, the password
* will be hashed by this method * will be hashed by this method
* *
* @param <type> $id The user name or numerical identifier * @param <type> $id The user name or numerical identifier
*/ */
@ -2204,7 +2204,7 @@ class RestapiController { /* {{{ */
$roles = $dms->getAllRoles(); $roles = $dms->getAllRoles();
$data = []; $data = [];
foreach($roles as $r) foreach($roles as $r)
$data[] = $this->__getRoleData($r); $data[] = $this->__getRoleData($r);
return $response->withJson(array('success'=>true, 'message'=>'', 'data'=>$data), 200); return $response->withJson(array('success'=>true, 'message'=>'', 'data'=>$data), 200);
} /* }}} */ } /* }}} */
@ -2877,7 +2877,7 @@ class RestapiAuth { /* {{{ */
if(!($userobj = $dms->getUser($settings->_guestID))) if(!($userobj = $dms->getUser($settings->_guestID)))
return $response->withJson(array('success'=>false, 'message'=>'Could not get guest login', 'data'=>''), 403); return $response->withJson(array('success'=>false, 'message'=>'Could not get guest login', 'data'=>''), 403);
} else } else
return $response->withJson(array('success'=>false, 'message'=>'Login as guest disabled', 'data'=>''), 403); return $response->withJson(array('success'=>false, 'message'=>'Login as guest disabled', 'data'=>''), 403);
} }
if($userobj->isAdmin()) { if($userobj->isAdmin()) {
if($resArr["su"]) { if($resArr["su"]) {