check if user has access and is not disabled іf reviewer, approver, etc.

also check if group has members if set as reviewer, approver, etc.
This commit is contained in:
Uwe Steinmann 2017-07-21 13:52:57 +02:00
parent aa162b6601
commit 6847e1b6db

View File

@ -771,6 +771,7 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style {
foreach ($reviewStatus as $r) { foreach ($reviewStatus as $r) {
$required = null; $required = null;
$is_reviewer = false; $is_reviewer = false;
$accesserr = '';
switch ($r["type"]) { switch ($r["type"]) {
case 0: // Reviewer is an individual. case 0: // Reviewer is an individual.
$required = $dms->getUser($r["required"]); $required = $dms->getUser($r["required"]);
@ -778,7 +779,13 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style {
$reqName = getMLText("unknown_user")." '".$r["required"]."'"; $reqName = getMLText("unknown_user")." '".$r["required"]."'";
} }
else { else {
$reqName = htmlspecialchars($required->getFullName()." (".$required->getLogin().")"); $reqName = "<i class=\"icon-user\"></i> ".htmlspecialchars($required->getFullName()." (".$required->getLogin().")");
if($user->isAdmin()) {
if($document->getAccessMode($required) < M_READ || $latestContent->getAccessMode($required) < M_READ)
$accesserr = getMLText("access_denied");
elseif(is_object($required) && $required->isDisabled())
$accesserr = getMLText("login_disabled_title");
}
if($required->getId() == $user->getId()/* && ($user->getId() != $owner->getId() || $enableownerrevapp == 1)*/) if($required->getId() == $user->getId()/* && ($user->getId() != $owner->getId() || $enableownerrevapp == 1)*/)
$is_reviewer = true; $is_reviewer = true;
} }
@ -789,7 +796,12 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style {
$reqName = getMLText("unknown_group")." '".$r["required"]."'"; $reqName = getMLText("unknown_group")." '".$r["required"]."'";
} }
else { else {
$reqName = "<i>".htmlspecialchars($required->getName())."</i>"; $reqName = "<i class=\"icon-group\"></i> ".htmlspecialchars($required->getName());
if($user->isAdmin()) {
$grpusers = $required->getUsers();
if(!$grpusers)
$accesserr = getMLText("no_group_members");
}
if($required->isMember($user)/* && ($user->getId() != $owner->getId() || $enableownerrevapp == 1)*/) if($required->isMember($user)/* && ($user->getId() != $owner->getId() || $enableownerrevapp == 1)*/)
$is_reviewer = true; $is_reviewer = true;
} }
@ -811,6 +823,8 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style {
print "</td>\n"; print "</td>\n";
print "<td>".getReviewStatusText($r["status"])."</td>\n"; print "<td>".getReviewStatusText($r["status"])."</td>\n";
print "<td><ul class=\"unstyled\">"; print "<td><ul class=\"unstyled\">";
if($accesserr)
echo "<li><span class=\"alert alert-error\">".$accesserr."</span></li>";
if($accessop->mayReview($document)) { if($accessop->mayReview($document)) {
if ($is_reviewer) { if ($is_reviewer) {
@ -844,6 +858,7 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style {
foreach ($approvalStatus as $a) { foreach ($approvalStatus as $a) {
$required = null; $required = null;
$is_approver = false; $is_approver = false;
$accesserr = '';
switch ($a["type"]) { switch ($a["type"]) {
case 0: // Approver is an individual. case 0: // Approver is an individual.
$required = $dms->getUser($a["required"]); $required = $dms->getUser($a["required"]);
@ -851,7 +866,13 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style {
$reqName = getMLText("unknown_user")." '".$a["required"]."'"; $reqName = getMLText("unknown_user")." '".$a["required"]."'";
} }
else { else {
$reqName = htmlspecialchars($required->getFullName()." (".$required->getLogin().")"); $reqName = "<i class=\"icon-user\"></i> ".htmlspecialchars($required->getFullName()." (".$required->getLogin().")");
if($user->isAdmin()) {
if($document->getAccessMode($required) < M_READ || $latestContent->getAccessMode($required) < M_READ)
$accesserr = getMLText("access_denied");
elseif(is_object($required) && $required->isDisabled())
$accesserr = getMLText("login_disabled_title");
}
if($required->getId() == $user->getId()) if($required->getId() == $user->getId())
$is_approver = true; $is_approver = true;
} }
@ -862,7 +883,12 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style {
$reqName = getMLText("unknown_group")." '".$a["required"]."'"; $reqName = getMLText("unknown_group")." '".$a["required"]."'";
} }
else { else {
$reqName = "<i>".htmlspecialchars($required->getName())."</i>"; $reqName = "<i class=\"icon-group\"></i> ".htmlspecialchars($required->getName());
if($user->isAdmin()) {
$grpusers = $required->getUsers();
if(!$grpusers)
$accesserr = getMLText("no_group_members");
}
if($required->isMember($user)/* && ($user->getId() != $owner->getId() || $enableownerrevapp == 1)*/) if($required->isMember($user)/* && ($user->getId() != $owner->getId() || $enableownerrevapp == 1)*/)
$is_approver = true; $is_approver = true;
} }
@ -884,6 +910,8 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style {
echo "</td>\n"; echo "</td>\n";
print "<td>".getApprovalStatusText($a["status"])."</td>\n"; print "<td>".getApprovalStatusText($a["status"])."</td>\n";
print "<td><ul class=\"unstyled\">"; print "<td><ul class=\"unstyled\">";
if($accesserr)
echo "<li><span class=\"alert alert-error\">".$accesserr."</span></li>";
if($accessop->mayApprove($document)) { if($accessop->mayApprove($document)) {
if ($is_approver) { if ($is_approver) {
@ -1173,17 +1201,16 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style {
switch ($r["type"]) { switch ($r["type"]) {
case 0: // Recipient is an individual. case 0: // Recipient is an individual.
$required = $dms->getUser($r["required"]); $required = $dms->getUser($r["required"]);
if($user->isAdmin()) {
if($document->getAccessMode($required) < M_READ || $latestContent->getAccessMode($required) < M_READ)
$accesserr = getMLText("access_denied");
elseif(is_object($required) && $required->isDisabled())
$accesserr = getMLText("login_disabled_title");
}
if (!is_object($required)) { if (!is_object($required)) {
$reqName = getMLText("unknown_user")." '".$r["required"]."'"; $reqName = getMLText("unknown_user")." '".$r["required"]."'";
} } else {
else { $reqName = "<i class=\"icon-user\"></i> ".htmlspecialchars($required->getFullName()." (".$required->getLogin().")");
$reqName = htmlspecialchars($required->getFullName()." (".$required->getLogin().")"); if($user->isAdmin()) {
if($document->getAccessMode($required) < M_READ || $latestContent->getAccessMode($required) < M_READ)
$accesserr = getMLText("access_denied");
elseif(is_object($required) && $required->isDisabled())
$accesserr = getMLText("login_disabled_title");
}
} }
if($r["required"] == $user->getId()/* && ($user->getId() != $owner->getId() || $enableownerreceipt == 1)*/) if($r["required"] == $user->getId()/* && ($user->getId() != $owner->getId() || $enableownerreceipt == 1)*/)
$is_recipient = true; $is_recipient = true;
@ -1194,7 +1221,12 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style {
$reqName = getMLText("unknown_group")." '".$r["required"]."'"; $reqName = getMLText("unknown_group")." '".$r["required"]."'";
} }
else { else {
$reqName = "<i>".htmlspecialchars($required->getName())."</i>"; $reqName = "<i class=\"icon-group\"></i> ".htmlspecialchars($required->getName());
if($user->isAdmin()) {
$grpusers = $required->getUsers();
if(!$grpusers)
$accesserr = getMLText("no_group_members");
}
if($required->isMember($user)/* && ($user->getId() != $owner->getId() || $enableownerreceipt == 1)*/) if($required->isMember($user)/* && ($user->getId() != $owner->getId() || $enableownerreceipt == 1)*/)
$is_recipient = true; $is_recipient = true;
} }
@ -1300,17 +1332,16 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style {
switch ($r["type"]) { switch ($r["type"]) {
case 0: // Reviewer is an individual. case 0: // Reviewer is an individual.
$required = $dms->getUser($r["required"]); $required = $dms->getUser($r["required"]);
if($user->isAdmin()) {
if($document->getAccessMode($required) < M_READ || $latestContent->getAccessMode($required) < M_READ)
$accesserr = getMLText("access_denied");
elseif(is_object($required) && $required->isDisabled())
$accesserr = getMLText("login_disabled_title");
}
if (!is_object($required)) { if (!is_object($required)) {
$reqName = getMLText("unknown_user")." '".$r["required"]."'"; $reqName = getMLText("unknown_user")." '".$r["required"]."'";
} } else {
else { $reqName = "<i class=\"icon-user\"></i> ".htmlspecialchars($required->getFullName()." (".$required->getLogin().")");
$reqName = htmlspecialchars($required->getFullName()." (".$required->getLogin().")"); if($user->isAdmin()) {
if($document->getAccessMode($required) < M_READ || $latestContent->getAccessMode($required) < M_READ)
$accesserr = getMLText("access_denied");
elseif(is_object($required) && $required->isDisabled())
$accesserr = getMLText("login_disabled_title");
}
} }
if($r["required"] == $user->getId()/* && ($user->getId() != $owner->getId() || $enableownerrevapp == 1)*/) if($r["required"] == $user->getId()/* && ($user->getId() != $owner->getId() || $enableownerrevapp == 1)*/)
$is_recipient = true; $is_recipient = true;
@ -1321,7 +1352,7 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style {
$reqName = getMLText("unknown_group")." '".$r["required"]."'"; $reqName = getMLText("unknown_group")." '".$r["required"]."'";
} }
else { else {
$reqName = "<i>".htmlspecialchars($required->getName())."</i>"; $reqName = "<i class=\"icon-user\"></i> ".htmlspecialchars($required->getName());
if($required->isMember($user)/* && ($user->getId() != $owner->getId() || $enableownerrevapp == 1)*/) if($required->isMember($user)/* && ($user->getId() != $owner->getId() || $enableownerrevapp == 1)*/)
$is_recipient = true; $is_recipient = true;
} }