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

This commit is contained in:
Uwe Steinmann 2024-02-12 14:08:17 +01:00
commit 4eba2e3283
5 changed files with 53 additions and 3 deletions

View File

@ -206,10 +206,14 @@ class Settings { /* {{{ */
var $_addManagerAsReviewer = false;
// group manager is mandatory approver
var $_addManagerAsApprover = false;
// global reviewer
// global individuel reviewer
var $_globalReviewer = array();
// global approver
// global individuel approver
var $_globalApprover = array();
// global group reviewer
var $_globalGroupReviewer = array();
// global group approver
var $_globalGroupApprover = array();
// enable/disable default notification for owner
var $_enableOwnerNotification = false;
// enable/disable deleting of versions for regular users
@ -819,6 +823,10 @@ class Settings { /* {{{ */
$this->_globalReviewer = explode(',',strval($tab["globalReviewer"]));
if(trim(strval($tab["globalApprover"])))
$this->_globalApprover = explode(',',strval($tab["globalApprover"]));
if(trim(strval($tab["globalGroupReviewer"])))
$this->_globalGroupReviewer = explode(',',strval($tab["globalGroupReviewer"]));
if(trim(strval($tab["globalGroupApprover"])))
$this->_globalGroupApprover = explode(',',strval($tab["globalGroupApprover"]));
$this->_presetExpirationDate = strval($tab["presetExpirationDate"]);
$this->_initialDocumentStatus = intval($tab["initialDocumentStatus"]);
$this->_versioningFileName = strval($tab["versioningFileName"]);
@ -1195,6 +1203,8 @@ class Settings { /* {{{ */
$this->setXMLAttributValue($node, "addManagerAsApprover", $this->_addManagerAsApprover);
$this->setXMLAttributValue($node, "globalReviewer", implode(',', $this->_globalReviewer));
$this->setXMLAttributValue($node, "globalApprover", implode(',', $this->_globalApprover));
$this->setXMLAttributValue($node, "globalGroupReviewer", implode(',', $this->_globalGroupReviewer));
$this->setXMLAttributValue($node, "globalGroupApprover", implode(',', $this->_globalGroupApprover));
$this->setXMLAttributValue($node, "presetExpirationDate", $this->_presetExpirationDate);
$this->setXMLAttributValue($node, "apiOrigin", $this->_apiOrigin);
$this->setXMLAttributValue($node, "versioningFileName", $this->_versioningFileName);

View File

@ -1105,6 +1105,11 @@ function getMandatoryReviewers($folder, $document, $user) { /* {{{ */
$revi = array_merge($revi, $settings->_globalReviewer);
}
/* Add global group reviewers as mandatory reviewers */
if(!empty($settings->_globalGroupReviewer)) {
$revg = array_merge($revg, $settings->_globalGroupReviewer);
}
/* Check if reviewers are allowed to review */
$revi = array_unique($revi);
$revg = array_unique($revg);
@ -1186,6 +1191,11 @@ function getMandatoryApprovers($folder, $document, $user) { /* {{{ */
$appi = array_merge($appi, $settings->_globalApprover);
}
/* Add global group approvers as mandatory approvers */
if(!empty($settings->_globalGroupApprover)) {
$appg = array_merge($appg, $settings->_globalGroupApprover);
}
/* Check if approvers are allowed to approve */
$appi = array_unique($appi);
$appg = array_unique($appg);

View File

@ -263,6 +263,8 @@ if ($action == "saveSettings")
setBoolValue("addManagerAsApprover");
setArrayValue("globalReviewer");
setArrayValue("globalApprover");
setArrayValue("globalGroupReviewer");
setArrayValue("globalGroupApprover");
setBoolValue("enableUpdateRevApp");
setBoolValue("enableRemoveRevApp");
setBoolValue("enableAdminReceipt");

View File

@ -149,6 +149,7 @@ $(document).ready( function() {
function showGroupForm($group) { /* {{{ */
$dms = $this->params['dms'];
$user = $this->params['user'];
$settings = $this->params['settings'];
$allUsers = $this->params['allusers'];
$groups = $this->params['allgroups'];
$sortusersinlist = $this->params['sortusersinlist'];
@ -213,7 +214,16 @@ $(document).ready( function() {
print "<form action=\"../op/op.GroupMgr.php\" method=\"post\" class=\"form-inline\" style=\"display: inline-block; margin-bottom: 0px;\"><input type=\"hidden\" name=\"action\" value=\"rmmember\" /><input type=\"hidden\" name=\"groupid\" value=\"".$group->getID()."\" /><input type=\"hidden\" name=\"userid\" value=\"".$member->getID()."\" />".createHiddenFieldWithKey('rmmember')."<button type=\"submit\" class=\"btn btn-danger btn-mini btn-sm\"><i class=\"fa fa-remove\"></i><span class=\"d-none d-lg-block\"> ".getMLText("delete")."</span></button></form>";
print "&nbsp;";
print "<form action=\"../op/op.GroupMgr.php\" method=\"post\" class=\"form-inline\" style=\"display: inline-block; margin-bottom: 0px;\"><input type=\"hidden\" name=\"groupid\" value=\"".$group->getID()."\" /><input type=\"hidden\" name=\"action\" value=\"tmanager\" /><input type=\"hidden\" name=\"userid\" value=\"".$member->getID()."\" />".createHiddenFieldWithKey('tmanager')."<button type=\"submit\" class=\"btn btn-secondary btn-mini btn-sm\"><i class=\"fa fa-random\"></i><span class=\"d-none d-lg-block\"> ".getMLText("toggle_manager")."</span></button></form>";
print "</td></tr>";
print "</td>";
echo "<td>";
if($group->isMember($member, true) && $member->isAdmin() && $settings->_addManagerAsReviewer && !$settings->_enableAdminRevApp) {
$this->warningMsg(getMLText("settings_manager_reviewer_is_admin", ['login'=>$member->getLogin()]));
}
if($group->isMember($member, true) && $member->isAdmin() && $settings->_addManagerAsApprover && !$settings->_enableAdminRevApp) {
$this->warningMsg(getMLText("settings_manager_approver_is_admin", ['login'=>$member->getLogin()]));
}
echo "</td>";
print "</tr>";
}
}
?>

View File

@ -548,6 +548,8 @@ if(($kkk = $this->callHook('getFullSearchEngine')) && is_array($kkk))
<?php $this->showConfigCheckbox('settings_addManagerAsApprover', 'addManagerAsApprover'); ?>
<?php $this->showConfigUser('settings_globalReviewer', 'globalReviewer', true, true); ?>
<?php $this->showConfigUser('settings_globalApprover', 'globalApprover', true, true); ?>
<?php $this->showConfigGroup('settings_globalGroupReviewer', 'globalGroupReviewer', true, true); ?>
<?php $this->showConfigGroup('settings_globalGroupApprover', 'globalGroupApprover', true, true); ?>
<?php $this->showConfigCheckbox('settings_enableVersionDeletion', 'enableVersionDeletion'); ?>
<?php $this->showConfigCheckbox('settings_enableVersionModification', 'enableVersionModification'); ?>
<?php $this->showConfigCheckbox('settings_enableDuplicateDocNames', 'enableDuplicateDocNames'); ?>
@ -786,6 +788,22 @@ if(is_writeable($settings->_configFilePath)) {
$this->warningMsg(getMLText("settings_partionsize_below_max_filesize"));
}
/* Check if globally defined reviewer/approvers are admins */
if(!$settings->_enableAdminRevApp) {
foreach($settings->_globalReviewer as $uid) {
$u = $dms->getUser($uid);
if($u->isAdmin()) {
$this->warningMsg(getMLText("settings_global_reviewer_is_admin", ['login'=>$u->getLogin()]));
}
}
foreach($settings->_globalReviewer as $uid) {
$u = $dms->getUser($uid);
if($u->isAdmin()) {
$this->warningMsg(getMLText("settings_global_approver_is_admin", ['login'=>$u->getLogin()]));
}
}
}
foreach($extmgr->getExtensionConfiguration() as $extname=>$extconf) {
if($this->hasHook('checkConfig'))
$this->callHook('checkConfig', $extname, $extconf);