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

This commit is contained in:
Uwe Steinmann 2024-02-21 16:04:29 +01:00
commit 12a4a6446f

View File

@ -1069,6 +1069,7 @@ function cmp_user_fullname($a, $b) { /* {{{ */
* on the folder containing the document. It also checks if the
* mandatory reviewer is an admin or the uploading user and if
* those are allowed to review/approve a document.
* Mandatory groups will only be added if they are not empty
*
* @param $folder folder where document is located
* @param $document document which is updated, null when adding a new document
@ -1121,7 +1122,11 @@ function getMandatoryReviewers($folder, $document, $user) { /* {{{ */
foreach($revi as $uid) {
if($u = $dms->getUser($uid)) {
/* need at least read access on parent folder */
if($folder->getAccessMode($u) < M_READ)
if($document)
$accessmode = $document->getAccessMode($u);
else
$accessmode = $folder->getAccessMode($u);
if($accessmode < M_READ)
$reviewers["ni"][] = $u->getId();
/* admins as reviewers must be enabled */
elseif(!$settings->_enableAdminRevApp && $u->isAdmin())
@ -1138,7 +1143,11 @@ function getMandatoryReviewers($folder, $document, $user) { /* {{{ */
}
foreach($revg as $gid) {
if($g = $dms->getGroup($gid)) {
if($folder->getGroupAccessMode($g) < M_READ)
if($document)
$accessmode = $document->getGroupAccessMode($u);
else
$accessmode = $folder->getGroupAccessMode($u);
if($accessmode < M_READ || !$g->getUsers())
$reviewers["ng"][] = $g->getId();
else
$reviewers["g"][] = $g->getId();
@ -1155,6 +1164,7 @@ function getMandatoryReviewers($folder, $document, $user) { /* {{{ */
* on the folder containing the document. It also checks if the
* mandatory approver is an admin or the uploading user and if
* those are allowed to review/approve a document.
* Mandatory groups will only be added if they are not empty
*
* @param $folder folder where document is located
* @param $document document which is updated, null when adding a new document
@ -1207,7 +1217,11 @@ function getMandatoryApprovers($folder, $document, $user) { /* {{{ */
foreach($appi as $uid) {
if($u = $dms->getUser($uid)) {
/* need at least read access on parent folder */
if($folder->getAccessMode($u) < M_READ)
if($document)
$accessmode = $document->getAccessMode($u);
else
$accessmode = $folder->getAccessMode($u);
if($accessmode < M_READ)
$approvers["ni"][] = $u->getId();
/* admins as approvers must be enabled */
elseif(!$settings->_enableAdminRevApp && $u->isAdmin())
@ -1224,7 +1238,11 @@ function getMandatoryApprovers($folder, $document, $user) { /* {{{ */
}
foreach($appg as $gid) {
if($g = $dms->getGroup($gid)) {
if($folder->getGroupAccessMode($g) < M_READ)
if($document)
$accessmode = $document->getGroupAccessMode($u);
else
$accessmode = $folder->getGroupAccessMode($u);
if($accessmode < M_READ || !$g->getUsers())
$approvers["ng"][] = $g->getId();
else
$approvers["g"][] = $g->getId();