enhance AccessOperation by check_view_access()

all methods in SeedDMS_AccessOperation take the object to be checked
as the first parameter. Add new method check_view_access() which
checks if a view may be accessed based on the tables tblAros, tblAcos,
tblArosAcos
This commit is contained in:
Uwe Steinmann 2016-03-03 07:39:04 +01:00
parent 8985748f8a
commit 51fa5d18e6
36 changed files with 134 additions and 119 deletions

View File

@ -11,6 +11,8 @@
* @version Release: @package_version@ * @version Release: @package_version@
*/ */
require_once "inc.ClassAcl.php";
/** /**
* Class to check certain access restrictions * Class to check certain access restrictions
* *
@ -27,12 +29,6 @@ class SeedDMS_AccessOperation {
*/ */
private $dms; private $dms;
/**
* @var object $obj object being accessed
* @access protected
*/
private $obj;
/** /**
* @var object $user user requesting the access * @var object $user user requesting the access
* @access protected * @access protected
@ -45,9 +41,8 @@ class SeedDMS_AccessOperation {
*/ */
private $settings; private $settings;
function __construct($dms, $obj, $user, $settings) { /* {{{ */ function __construct($dms, $user, $settings) { /* {{{ */
$this->dms = $dms; $this->dms = $dms;
$this->obj = $obj;
$this->user = $user; $this->user = $user;
$this->settings = $settings; $this->settings = $settings;
} /* }}} */ } /* }}} */
@ -61,10 +56,10 @@ class SeedDMS_AccessOperation {
* document may delete versions. The admin may even delete a version * document may delete versions. The admin may even delete a version
* even if is disallowed in the settings. * even if is disallowed in the settings.
*/ */
function mayRemoveVersion() { /* {{{ */ function mayRemoveVersion($document) { /* {{{ */
if(get_class($this->obj) == $this->dms->getClassname('document')) { if(get_class($document) == $this->dms->getClassname('document')) {
$versions = $this->obj->getContent(); $versions = $document->getContent();
if ((($this->settings->_enableVersionDeletion && ($this->obj->getAccessMode($this->user) == M_ALL)) || $this->user->isAdmin() ) && (count($versions) > 1)) { if ((($this->settings->_enableVersionDeletion && ($document->getAccessMode($this->user) == M_ALL)) || $this->user->isAdmin() ) && (count($versions) > 1)) {
return true; return true;
} }
} }
@ -81,11 +76,11 @@ class SeedDMS_AccessOperation {
* The admin may even modify the status * The admin may even modify the status
* even if is disallowed in the settings. * even if is disallowed in the settings.
*/ */
function mayOverrideStatus() { /* {{{ */ function mayOverrideStatus($document) { /* {{{ */
if(get_class($this->obj) == $this->dms->getClassname('document')) { if(get_class($document) == $this->dms->getClassname('document')) {
$latestContent = $this->obj->getLatestContent(); $latestContent = $document->getLatestContent();
$status = $latestContent->getStatus(); $status = $latestContent->getStatus();
if ((($this->settings->_enableVersionModification && ($this->obj->getAccessMode($this->user) == M_ALL)) || $this->user->isAdmin()) && ($status["status"]==S_DRAFT || $status["status"]==S_RELEASED || $status["status"]==S_OBSOLETE)) { if ((($this->settings->_enableVersionModification && ($document->getAccessMode($this->user) == M_ALL)) || $this->user->isAdmin()) && ($status["status"]==S_DRAFT || $status["status"]==S_RELEASED || $status["status"]==S_OBSOLETE)) {
return true; return true;
} }
} }
@ -101,11 +96,11 @@ class SeedDMS_AccessOperation {
* admin may even set reviewers/approvers if is disallowed in the * admin may even set reviewers/approvers if is disallowed in the
* settings. * settings.
*/ */
function maySetReviewersApprovers() { /* {{{ */ function maySetReviewersApprovers($document) { /* {{{ */
if(get_class($this->obj) == $this->dms->getClassname('document')) { if(get_class($document) == $this->dms->getClassname('document')) {
$latestContent = $this->obj->getLatestContent(); $latestContent = $document->getLatestContent();
$status = $latestContent->getStatus(); $status = $latestContent->getStatus();
if ((($this->settings->_enableVersionModification && ($this->obj->getAccessMode($this->user) == M_ALL)) || $this->user->isAdmin()) && ($status['status']==S_DRAFT || $status["status"]==S_DRAFT_REV || $status["status"]==S_DRAFT_APP && $this->settings->_workflowMode == 'traditional_only_approval')) { if ((($this->settings->_enableVersionModification && ($document->getAccessMode($this->user) == M_ALL)) || $this->user->isAdmin()) && ($status['status']==S_DRAFT || $status["status"]==S_DRAFT_REV || $status["status"]==S_DRAFT_APP && $this->settings->_workflowMode == 'traditional_only_approval')) {
return true; return true;
} }
} }
@ -121,11 +116,11 @@ class SeedDMS_AccessOperation {
* admin may even set recipients if is disallowed in the * admin may even set recipients if is disallowed in the
* settings. * settings.
*/ */
function maySetRecipients() { /* {{{ */ function maySetRecipients($document) { /* {{{ */
if(get_class($this->obj) == $this->dms->getClassname('document')) { if(get_class($document) == $this->dms->getClassname('document')) {
$latestContent = $this->obj->getLatestContent(); $latestContent = $document->getLatestContent();
$status = $latestContent->getStatus(); $status = $latestContent->getStatus();
if ((($this->settings->_enableVersionModification && ($this->obj->getAccessMode($this->user) == M_ALL)) || $this->user->isAdmin()) && ($status["status"]==S_RELEASED)) { if ((($this->settings->_enableVersionModification && ($document->getAccessMode($this->user) == M_ALL)) || $this->user->isAdmin()) && ($status["status"]==S_RELEASED)) {
return true; return true;
} }
} }
@ -141,11 +136,11 @@ class SeedDMS_AccessOperation {
* admin may even set revisors if is disallowed in the * admin may even set revisors if is disallowed in the
* settings. * settings.
*/ */
function maySetRevisors() { /* {{{ */ function maySetRevisors($document) { /* {{{ */
if(get_class($this->obj) == $this->dms->getClassname('document')) { if(get_class($document) == $this->dms->getClassname('document')) {
$latestContent = $this->obj->getLatestContent(); $latestContent = $document->getLatestContent();
$status = $latestContent->getStatus(); $status = $latestContent->getStatus();
if (($this->settings->_enableVersionModification && ($this->obj->getAccessMode($this->user) == M_ALL)) || $this->user->isAdmin() /* && ($status["status"]==S_RELEASED || $status["status"]==S_IN_REVISION)*/) { if (($this->settings->_enableVersionModification && ($document->getAccessMode($this->user) == M_ALL)) || $this->user->isAdmin() /* && ($status["status"]==S_RELEASED || $status["status"]==S_IN_REVISION)*/) {
return true; return true;
} }
} }
@ -161,11 +156,11 @@ class SeedDMS_AccessOperation {
* admin may even set the workflow if is disallowed in the * admin may even set the workflow if is disallowed in the
* settings. * settings.
*/ */
function maySetWorkflow() { /* {{{ */ function maySetWorkflow($document) { /* {{{ */
if(get_class($this->obj) == $this->dms->getClassname('document')) { if(get_class($document) == $this->dms->getClassname('document')) {
$latestContent = $this->obj->getLatestContent(); $latestContent = $document->getLatestContent();
$workflow = $latestContent->getWorkflow(); $workflow = $latestContent->getWorkflow();
if ((($this->settings->_enableVersionModification && ($this->obj->getAccessMode($this->user) == M_ALL)) || $this->user->isAdmin()) && (!$workflow || ($workflow->getInitState()->getID() == $latestContent->getWorkflowState()->getID()))) { if ((($this->settings->_enableVersionModification && ($document->getAccessMode($this->user) == M_ALL)) || $this->user->isAdmin()) && (!$workflow || ($workflow->getInitState()->getID() == $latestContent->getWorkflowState()->getID()))) {
return true; return true;
} }
} }
@ -178,11 +173,11 @@ class SeedDMS_AccessOperation {
* This check can only be done for documents. Setting the documents * This check can only be done for documents. Setting the documents
* expiration date is only allowed if the document has not been obsoleted. * expiration date is only allowed if the document has not been obsoleted.
*/ */
function maySetExpires() { /* {{{ */ function maySetExpires($document) { /* {{{ */
if(get_class($this->obj) == $this->dms->getClassname('document')) { if(get_class($document) == $this->dms->getClassname('document')) {
$latestContent = $this->obj->getLatestContent(); $latestContent = $document->getLatestContent();
$status = $latestContent->getStatus(); $status = $latestContent->getStatus();
if ((($this->obj->getAccessMode($this->user) == M_ALL) || $this->user->isAdmin()) && ($status["status"]!=S_OBSOLETE)) { if ((($document->getAccessMode($this->user) == M_ALL) || $this->user->isAdmin()) && ($status["status"]!=S_OBSOLETE)) {
return true; return true;
} }
} }
@ -198,17 +193,17 @@ class SeedDMS_AccessOperation {
* The admin may set the comment even if is * The admin may set the comment even if is
* disallowed in the settings. * disallowed in the settings.
*/ */
function mayEditComment() { /* {{{ */ function mayEditComment($document) { /* {{{ */
if(get_class($this->obj) == $this->dms->getClassname('document')) { if(get_class($document) == $this->dms->getClassname('document')) {
if($this->obj->isLocked()) { if($document->isLocked()) {
$lockingUser = $this->obj->getLockingUser(); $lockingUser = $document->getLockingUser();
if (($lockingUser->getID() != $this->user->getID()) && ($this->obj->getAccessMode($this->user) != M_ALL)) { if (($lockingUser->getID() != $this->user->getID()) && ($document->getAccessMode($this->user) != M_ALL)) {
return false; return false;
} }
} }
$latestContent = $this->obj->getLatestContent(); $latestContent = $document->getLatestContent();
$status = $latestContent->getStatus(); $status = $latestContent->getStatus();
if ((($this->settings->_enableVersionModification && ($this->obj->getAccessMode($this->user) >= M_READWRITE)) || $this->user->isAdmin()) && ($status["status"]!=S_OBSOLETE)) { if ((($this->settings->_enableVersionModification && ($document->getAccessMode($this->user) >= M_READWRITE)) || $this->user->isAdmin()) && ($status["status"]!=S_OBSOLETE)) {
return true; return true;
} }
} }
@ -224,12 +219,12 @@ class SeedDMS_AccessOperation {
* The admin may set the comment even if is * The admin may set the comment even if is
* disallowed in the settings. * disallowed in the settings.
*/ */
function mayEditAttributes() { /* {{{ */ function mayEditAttributes($document) { /* {{{ */
if(get_class($this->obj) == $this->dms->getClassname('document')) { if(get_class($document) == $this->dms->getClassname('document')) {
$latestContent = $this->obj->getLatestContent(); $latestContent = $document->getLatestContent();
$status = $latestContent->getStatus(); $status = $latestContent->getStatus();
$workflow = $latestContent->getWorkflow(); $workflow = $latestContent->getWorkflow();
if ((($this->settings->_enableVersionModification && ($this->obj->getAccessMode($this->user) >= M_READWRITE)) || $this->user->isAdmin()) && ($status["status"]==S_DRAFT_REV || ($workflow && $workflow->getInitState()->getID() == $latestContent->getWorkflowState()->getID()))) { if ((($this->settings->_enableVersionModification && ($document->getAccessMode($this->user) >= M_READWRITE)) || $this->user->isAdmin()) && ($status["status"]==S_DRAFT_REV || ($workflow && $workflow->getInitState()->getID() == $latestContent->getWorkflowState()->getID()))) {
return true; return true;
} }
} }
@ -243,9 +238,9 @@ class SeedDMS_AccessOperation {
* obsoleted. There are other requirements which are not taken into * obsoleted. There are other requirements which are not taken into
* account here. * account here.
*/ */
function mayReview() { /* {{{ */ function mayReview($document) { /* {{{ */
if(get_class($this->obj) == $this->dms->getClassname('document')) { if(get_class($document) == $this->dms->getClassname('document')) {
$latestContent = $this->obj->getLatestContent(); $latestContent = $document->getLatestContent();
$status = $latestContent->getStatus(); $status = $latestContent->getStatus();
if ($status["status"]!=S_OBSOLETE) { if ($status["status"]!=S_OBSOLETE) {
return true; return true;
@ -262,9 +257,9 @@ class SeedDMS_AccessOperation {
* There are other requirements which are not taken into * There are other requirements which are not taken into
* account here. * account here.
*/ */
function mayApprove() { /* {{{ */ function mayApprove($document) { /* {{{ */
if(get_class($this->obj) == $this->dms->getClassname('document')) { if(get_class($document) == $this->dms->getClassname('document')) {
$latestContent = $this->obj->getLatestContent(); $latestContent = $document->getLatestContent();
$status = $latestContent->getStatus(); $status = $latestContent->getStatus();
if ($status["status"]!=S_OBSOLETE && $status["status"]!=S_DRAFT_REV && $status["status"]!=S_REJECTED) { if ($status["status"]!=S_OBSOLETE && $status["status"]!=S_DRAFT_REV && $status["status"]!=S_REJECTED) {
return true; return true;
@ -280,9 +275,9 @@ class SeedDMS_AccessOperation {
* obsoleted. There are other requirements which are not taken into * obsoleted. There are other requirements which are not taken into
* account here. * account here.
*/ */
function mayReceipt() { /* {{{ */ function mayReceipt($document) { /* {{{ */
if(get_class($this->obj) == $this->dms->getClassname('document')) { if(get_class($document) == $this->dms->getClassname('document')) {
$latestContent = $this->obj->getLatestContent(); $latestContent = $document->getLatestContent();
$status = $latestContent->getStatus(); $status = $latestContent->getStatus();
if ($status["status"]!=S_OBSOLETE) { if ($status["status"]!=S_OBSOLETE) {
return true; return true;
@ -298,9 +293,9 @@ class SeedDMS_AccessOperation {
* obsoleted. There are other requirements which are not taken into * obsoleted. There are other requirements which are not taken into
* account here. * account here.
*/ */
function mayRevise() { /* {{{ */ function mayRevise($document) { /* {{{ */
if(get_class($this->obj) == $this->dms->getClassname('document')) { if(get_class($document) == $this->dms->getClassname('document')) {
$latestContent = $this->obj->getLatestContent(); $latestContent = $document->getLatestContent();
$status = $latestContent->getStatus(); $status = $latestContent->getStatus();
if ($status["status"]!=S_OBSOLETE) { if ($status["status"]!=S_OBSOLETE) {
return true; return true;
@ -309,5 +304,24 @@ class SeedDMS_AccessOperation {
return false; return false;
} /* }}} */ } /* }}} */
/**
* Check for access permission
*
* @param object $dms Instanz of dms
* @param object $role role of currently logged in user
* @param string $scope 'Views', 'Controllers'
* @param string $script Scriptname without 'out.' and '.php'
* @param string $get query parameters
* @return boolean true if access is allowed otherwise false
*/
function check_view_access($view, $get=array()) { /* {{{ */
$scope = 'Views';
$script = $view->getParam('class');
$action = (isset($get['action']) && $get['action']) ? $get['action'] : 'show';
$acl = new SeedDMS_Acl($this->dms);
$aro = SeedDMS_Aro::getInstance($this->user->getRole(), $this->dms);
$aco = SeedDMS_Aco::getInstance($scope.'/'.$script.'/'.$action, $this->dms);
return $acl->check($aro, $aco);
} /* }}} */
} }
?> ?>

View File

@ -74,11 +74,11 @@ if ($latestContent->getVersion()!=$version) {
} }
/* Create object for checking access to certain operations */ /* Create object for checking access to certain operations */
$accessop = new SeedDMS_AccessOperation($dms, $document, $user, $settings); $accessop = new SeedDMS_AccessOperation($dms, $user, $settings);
$olddocstatus = $content->getStatus(); $olddocstatus = $content->getStatus();
// verify if document may be approved // verify if document may be approved
if (!$accessop->mayApprove()){ if (!$accessop->mayApprove($document)){
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied"));
} }

View File

@ -73,10 +73,10 @@ if ($latestContent->getVersion()!=$version) {
} }
/* Create object for checking access to certain operations */ /* Create object for checking access to certain operations */
$accessop = new SeedDMS_AccessOperation($dms, $document, $user, $settings); $accessop = new SeedDMS_AccessOperation($dms, $user, $settings);
// verify if document may be receіpted // verify if document may be receіpted
if (!$accessop->mayReceipt()){ if (!$accessop->mayReceipt($document)){
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied"));
} }

View File

@ -73,11 +73,11 @@ if ($latestContent->getVersion()!=$version) {
} }
/* Create object for checking access to certain operations */ /* Create object for checking access to certain operations */
$accessop = new SeedDMS_AccessOperation($dms, $document, $user, $settings); $accessop = new SeedDMS_AccessOperation($dms, $user, $settings);
$olddocstatus = $content->getStatus(); $olddocstatus = $content->getStatus();
// verify if document may be reviewed // verify if document may be reviewed
if (!$accessop->mayReview()){ if (!$accessop->mayReview($document)){
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied"));
} }

View File

@ -73,11 +73,11 @@ if ($latestContent->getVersion()!=$version) {
} }
/* Create object for checking access to certain operations */ /* Create object for checking access to certain operations */
$accessop = new SeedDMS_AccessOperation($dms, $document, $user, $settings); $accessop = new SeedDMS_AccessOperation($dms, $user, $settings);
$olddocstatus = $content->getStatus(); $olddocstatus = $content->getStatus();
// verify if document maybe revised // verify if document maybe revised
if (!$document->mayRevise()){ if (!$accessop->mayRevise($document)){
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied")); UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("access_denied"));
} }

View File

@ -55,7 +55,7 @@ $folder = $document->getFolder();
$transmittals = $dms->getAllTransmittals($user); $transmittals = $dms->getAllTransmittals($user);
/* Create object for checking access to certain operations */ /* Create object for checking access to certain operations */
$accessop = new SeedDMS_AccessOperation($dms, $document, $user, $settings); $accessop = new SeedDMS_AccessOperation($dms, $user, $settings);
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'folder'=>$folder, 'document'=>$document, 'version'=>$content)); $view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'folder'=>$folder, 'document'=>$document, 'version'=>$content));

View File

@ -41,7 +41,7 @@ if (!is_object($document)) {
$folder = $document->getFolder(); $folder = $document->getFolder();
/* Create object for checking access to certain operations */ /* Create object for checking access to certain operations */
$accessop = new SeedDMS_AccessOperation($dms, $document, $user, $settings); $accessop = new SeedDMS_AccessOperation($dms, $user, $settings);
if ($document->getAccessMode($user) < M_READ) { if ($document->getAccessMode($user) < M_READ) {
UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("access_denied")); UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("access_denied"));

View File

@ -60,7 +60,7 @@ if($settings->_quota > 0) {
$folder = $document->getFolder(); $folder = $document->getFolder();
/* Create object for checking access to certain operations */ /* Create object for checking access to certain operations */
$accessop = new SeedDMS_AccessOperation($dms, $document, $user, $settings); $accessop = new SeedDMS_AccessOperation($dms, $user, $settings);
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'folder'=>$folder, 'document'=>$document, 'strictformcheck'=>$settings->_strictFormCheck, 'enablelargefileupload'=>$settings->_enableLargeFileUpload, 'enableadminrevapp'=>$settings->_enableAdminRevApp, 'enableownerrevapp'=>$settings->_enableOwnerRevApp, 'enableselfrevapp'=>$settings->_enableSelfRevApp, 'dropfolderdir'=>$settings->_dropFolderDir, 'workflowmode'=>$settings->_workflowMode, 'presetexpiration'=>$settings->_presetExpirationDate)); $view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'folder'=>$folder, 'document'=>$document, 'strictformcheck'=>$settings->_strictFormCheck, 'enablelargefileupload'=>$settings->_enableLargeFileUpload, 'enableadminrevapp'=>$settings->_enableAdminRevApp, 'enableownerrevapp'=>$settings->_enableOwnerRevApp, 'enableselfrevapp'=>$settings->_enableSelfRevApp, 'dropfolderdir'=>$settings->_dropFolderDir, 'workflowmode'=>$settings->_workflowMode, 'presetexpiration'=>$settings->_presetExpirationDate));

View File

@ -47,7 +47,7 @@ $allUsers = $dms->getAllUsers($settings->_sortUsersInList);
$allGroups = $dms->getAllGroups(); $allGroups = $dms->getAllGroups();
/* Create object for checking access to certain operations */ /* Create object for checking access to certain operations */
$accessop = new SeedDMS_AccessOperation($dms, $document, $user, $settings); $accessop = new SeedDMS_AccessOperation($dms, $user, $settings);
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'folder'=>$folder, 'document'=>$document, 'allusers'=>$allUsers, 'allgroups'=>$allGroups)); $view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'folder'=>$folder, 'document'=>$document, 'allusers'=>$allUsers, 'allgroups'=>$allGroups));

View File

@ -45,7 +45,7 @@ if ($document->getAccessMode($user) < M_READ) {
} }
/* Create object for checking access to certain operations */ /* Create object for checking access to certain operations */
$accessop = new SeedDMS_AccessOperation($dms, $document, $user, $settings); $accessop = new SeedDMS_AccessOperation($dms, $user, $settings);
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'folder'=>$folder, 'document'=>$document, 'sortusersinlist'=>$settings->_sortUsersInList)); $view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'folder'=>$folder, 'document'=>$document, 'sortusersinlist'=>$settings->_sortUsersInList));

View File

@ -67,7 +67,7 @@ if ($latestContent->getVersion()==$version->getVersion()) {
$folder = $document->getFolder(); $folder = $document->getFolder();
/* Create object for checking access to certain operations */ /* Create object for checking access to certain operations */
$accessop = new SeedDMS_AccessOperation($dms, $document, $user, $settings); $accessop = new SeedDMS_AccessOperation($dms, $user, $settings);
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'folder'=>$folder, 'document'=>$document, 'version'=>$version, 'viewonlinefiletypes'=>$settings->_viewOnlineFileTypes, 'enableversionmodification'=>$settings->_enableVersionModification, 'previewWidthDetail'=>$settings->_previewWidthDetail, 'previewconverters'=>$settings->_converters['preview'], 'cachedir'=>$settings->_cacheDir, 'timeout'=>$settings->_cmdTimeout)); $view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'folder'=>$folder, 'document'=>$document, 'version'=>$version, 'viewonlinefiletypes'=>$settings->_viewOnlineFileTypes, 'enableversionmodification'=>$settings->_enableVersionModification, 'previewWidthDetail'=>$settings->_previewWidthDetail, 'previewconverters'=>$settings->_converters['preview'], 'cachedir'=>$settings->_cacheDir, 'timeout'=>$settings->_cmdTimeout));

View File

@ -46,7 +46,7 @@ if (!is_object($version)) {
$folder = $document->getFolder(); $folder = $document->getFolder();
/* Create object for checking access to certain operations */ /* Create object for checking access to certain operations */
$accessop = new SeedDMS_AccessOperation($dms, $document, $user, $settings); $accessop = new SeedDMS_AccessOperation($dms, $user, $settings);
$attrdefs = $dms->getAllAttributeDefinitions(array(SeedDMS_Core_AttributeDefinition::objtype_documentcontent, SeedDMS_Core_AttributeDefinition::objtype_all)); $attrdefs = $dms->getAllAttributeDefinitions(array(SeedDMS_Core_AttributeDefinition::objtype_documentcontent, SeedDMS_Core_AttributeDefinition::objtype_all));

View File

@ -51,7 +51,7 @@ if (!is_object($version)) {
$folder = $document->getFolder(); $folder = $document->getFolder();
/* Create object for checking access to certain operations */ /* Create object for checking access to certain operations */
$accessop = new SeedDMS_AccessOperation($dms, $document, $user, $settings); $accessop = new SeedDMS_AccessOperation($dms, $user, $settings);
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'folder'=>$folder, 'document'=>$document, 'version'=>$version, 'strictformcheck'=>$settings->_strictFormCheck)); $view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'folder'=>$folder, 'document'=>$document, 'version'=>$version, 'strictformcheck'=>$settings->_strictFormCheck));

View File

@ -51,7 +51,7 @@ $folder = $document->getFolder();
$attrdefs = $dms->getAllAttributeDefinitions(array(SeedDMS_Core_AttributeDefinition::objtype_document, SeedDMS_Core_AttributeDefinition::objtype_all)); $attrdefs = $dms->getAllAttributeDefinitions(array(SeedDMS_Core_AttributeDefinition::objtype_document, SeedDMS_Core_AttributeDefinition::objtype_all));
/* Create object for checking access to certain operations */ /* Create object for checking access to certain operations */
$accessop = new SeedDMS_AccessOperation($dms, $document, $user, $settings); $accessop = new SeedDMS_AccessOperation($dms, $user, $settings);
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'folder'=>$folder, 'document'=>$document, 'attrdefs'=>$attrdefs, 'strictformcheck'=>$settings->_strictFormCheck, 'orderby'=>$settings->_sortFoldersDefault)); $view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'folder'=>$folder, 'document'=>$document, 'attrdefs'=>$attrdefs, 'strictformcheck'=>$settings->_strictFormCheck, 'orderby'=>$settings->_sortFoldersDefault));

View File

@ -64,7 +64,7 @@ if(isset($_GET['targetid']) && $_GET['targetid']) {
$folder = $document->getFolder(); $folder = $document->getFolder();
/* Create object for checking access to certain operations */ /* Create object for checking access to certain operations */
$accessop = new SeedDMS_AccessOperation($dms, $document, $user, $settings); $accessop = new SeedDMS_AccessOperation($dms, $user, $settings);
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'folder'=>$folder, 'document'=>$document, 'target'=>$target)); $view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'folder'=>$folder, 'document'=>$document, 'target'=>$target));

View File

@ -62,7 +62,7 @@ if ($overallStatus["status"] == S_REJECTED || $overallStatus["status"] == S_EXPI
$folder = $document->getFolder(); $folder = $document->getFolder();
/* Create object for checking access to certain operations */ /* Create object for checking access to certain operations */
$accessop = new SeedDMS_AccessOperation($dms, $document, $user, $settings); $accessop = new SeedDMS_AccessOperation($dms, $user, $settings);
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'folder'=>$folder, 'document'=>$document, 'version'=>$content)); $view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'folder'=>$folder, 'document'=>$document, 'version'=>$content));

View File

@ -59,10 +59,10 @@ if ($latestContent->getVersion()!=$version) {
UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("invalid_version")); UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("invalid_version"));
} }
/* Create object for checking access to certain operations */ /* Create object for checking access to certain operations */
$accessop = new SeedDMS_AccessOperation($dms, $document, $user, $settings); $accessop = new SeedDMS_AccessOperation($dms, $user, $settings);
// verify if document may be receipted // verify if document may be receipted
if (!$accessop->mayReceipt()){ if (!$accessop->mayReceipt($document)){
UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("access_denied")); UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("access_denied"));
} }

View File

@ -51,7 +51,7 @@ if($document->isLocked()) {
$folder = $document->getFolder(); $folder = $document->getFolder();
/* Create object for checking access to certain operations */ /* Create object for checking access to certain operations */
$accessop = new SeedDMS_AccessOperation($dms, $document, $user, $settings); $accessop = new SeedDMS_AccessOperation($dms, $user, $settings);
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'folder'=>$folder, 'document'=>$document)); $view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'folder'=>$folder, 'document'=>$document));

View File

@ -53,7 +53,7 @@ if (($document->getAccessMode($user) < M_ALL)&&($user->getID()!=$file->getUserID
$folder = $document->getFolder(); $folder = $document->getFolder();
/* Create object for checking access to certain operations */ /* Create object for checking access to certain operations */
$accessop = new SeedDMS_AccessOperation($dms, $document, $user, $settings); $accessop = new SeedDMS_AccessOperation($dms, $user, $settings);
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'folder'=>$folder, 'document'=>$document, 'file'=>$file)); $view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'folder'=>$folder, 'document'=>$document, 'file'=>$file));

View File

@ -60,7 +60,7 @@ if (!is_object($version)) {
$folder = $document->getFolder(); $folder = $document->getFolder();
/* Create object for checking access to certain operations */ /* Create object for checking access to certain operations */
$accessop = new SeedDMS_AccessOperation($dms, $document, $user, $settings); $accessop = new SeedDMS_AccessOperation($dms, $user, $settings);
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'folder'=>$folder, 'document'=>$document, 'version'=>$version)); $view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'folder'=>$folder, 'document'=>$document, 'version'=>$version));

View File

@ -60,7 +60,7 @@ if (!is_object($workflow)) {
$folder = $document->getFolder(); $folder = $document->getFolder();
/* Create object for checking access to certain operations */ /* Create object for checking access to certain operations */
$accessop = new SeedDMS_AccessOperation($dms, $document, $user, $settings); $accessop = new SeedDMS_AccessOperation($dms, $user, $settings);
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'folder'=>$folder, 'document'=>$document, 'version'=>$version)); $view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'folder'=>$folder, 'document'=>$document, 'version'=>$version));

View File

@ -60,10 +60,10 @@ if ($latestContent->getVersion()!=$version) {
} }
/* Create object for checking access to certain operations */ /* Create object for checking access to certain operations */
$accessop = new SeedDMS_AccessOperation($dms, $document, $user, $settings); $accessop = new SeedDMS_AccessOperation($dms, $user, $settings);
// verify if document may be reviewed // verify if document may be reviewed
if (!$accessop->mayReview()){ if (!$accessop->mayReview($document)){
UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("access_denied")); UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("access_denied"));
} }

View File

@ -60,7 +60,7 @@ if ($latestContent->getVersion()!=$version) {
} }
/* Create object for checking access to certain operations */ /* Create object for checking access to certain operations */
$accessop = new SeedDMS_AccessOperation($dms, $document, $user, $settings); $accessop = new SeedDMS_AccessOperation($dms, $user, $settings);
// verify if document maybe revised // verify if document maybe revised
if (!$document->mayRevise()){ if (!$document->mayRevise()){

View File

@ -60,7 +60,7 @@ if (!is_object($workflow)) {
$folder = $document->getFolder(); $folder = $document->getFolder();
/* Create object for checking access to certain operations */ /* Create object for checking access to certain operations */
$accessop = new SeedDMS_AccessOperation($dms, $document, $user, $settings); $accessop = new SeedDMS_AccessOperation($dms, $user, $settings);
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'folder'=>$folder, 'document'=>$document, 'version'=>$version)); $view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'folder'=>$folder, 'document'=>$document, 'version'=>$version));

View File

@ -65,7 +65,7 @@ if (!is_object($subworkflow)) {
$folder = $document->getFolder(); $folder = $document->getFolder();
/* Create object for checking access to certain operations */ /* Create object for checking access to certain operations */
$accessop = new SeedDMS_AccessOperation($dms, $document, $user, $settings); $accessop = new SeedDMS_AccessOperation($dms, $user, $settings);
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'folder'=>$folder, 'document'=>$document, 'version'=>$version, 'subworkflow'=>$subworkflow)); $view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'folder'=>$folder, 'document'=>$document, 'version'=>$version, 'subworkflow'=>$subworkflow));

View File

@ -44,7 +44,7 @@ if ($document->getAccessMode($user) < M_READWRITE) {
$folder = $document->getFolder(); $folder = $document->getFolder();
/* Create object for checking access to certain operations */ /* Create object for checking access to certain operations */
$accessop = new SeedDMS_AccessOperation($dms, $document, $user, $settings); $accessop = new SeedDMS_AccessOperation($dms, $user, $settings);
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'folder'=>$folder, 'document'=>$document)); $view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'folder'=>$folder, 'document'=>$document));

View File

@ -58,7 +58,7 @@ if(!$settings->_enableVersionModification) {
$folder = $document->getFolder(); $folder = $document->getFolder();
/* Create object for checking access to certain operations */ /* Create object for checking access to certain operations */
$accessop = new SeedDMS_AccessOperation($dms, $document, $user, $settings); $accessop = new SeedDMS_AccessOperation($dms, $user, $settings);
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'folder'=>$folder, 'document'=>$document, 'version'=>$content, 'enableadminrevapp'=>$settings->_enableAdminRevApp, 'enableownerrevapp'=>$settings->_enableOwnerRevApp, 'enableselfrevapp'=>$settings->_enableSelfRevApp)); $view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'folder'=>$folder, 'document'=>$document, 'version'=>$content, 'enableadminrevapp'=>$settings->_enableAdminRevApp, 'enableownerrevapp'=>$settings->_enableOwnerRevApp, 'enableselfrevapp'=>$settings->_enableSelfRevApp));

View File

@ -55,8 +55,8 @@ if(!$settings->_enableVersionModification) {
} }
/* Create object for checking access to certain operations */ /* Create object for checking access to certain operations */
$accessop = new SeedDMS_AccessOperation($dms, $document, $user, $settings); $accessop = new SeedDMS_AccessOperation($dms, $user, $settings);
if (!$accessop->maySetReviewersApprovers()) { if (!$accessop->maySetReviewersApprovers($document)) {
UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("cannot_assign_invalid_state")); UI::exitError(getMLText("document_title", array("documentname" => htmlspecialchars($document->getName()))),getMLText("cannot_assign_invalid_state"));
} }

View File

@ -58,7 +58,7 @@ if(!$settings->_enableVersionModification) {
$folder = $document->getFolder(); $folder = $document->getFolder();
/* Create object for checking access to certain operations */ /* Create object for checking access to certain operations */
$accessop = new SeedDMS_AccessOperation($dms, $document, $user, $settings); $accessop = new SeedDMS_AccessOperation($dms, $user, $settings);
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'folder'=>$folder, 'document'=>$document, 'version'=>$content)); $view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'folder'=>$folder, 'document'=>$document, 'version'=>$content));

View File

@ -51,7 +51,7 @@ if (!is_object($version)) {
$folder = $document->getFolder(); $folder = $document->getFolder();
/* Create object for checking access to certain operations */ /* Create object for checking access to certain operations */
$accessop = new SeedDMS_AccessOperation($dms, $document, $user, $settings); $accessop = new SeedDMS_AccessOperation($dms, $user, $settings);
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'folder'=>$folder, 'document'=>$document, 'version'=>$version)); $view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'folder'=>$folder, 'document'=>$document, 'version'=>$version));

View File

@ -61,7 +61,7 @@ if (!is_object($transition)) {
$folder = $document->getFolder(); $folder = $document->getFolder();
/* Create object for checking access to certain operations */ /* Create object for checking access to certain operations */
$accessop = new SeedDMS_AccessOperation($dms, $document, $user, $settings); $accessop = new SeedDMS_AccessOperation($dms, $user, $settings);
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'folder'=>$folder, 'document'=>$document, 'version'=>$version, 'transition'=>$transition)); $view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'folder'=>$folder, 'document'=>$document, 'version'=>$version, 'transition'=>$transition));

View File

@ -58,7 +58,7 @@ if($settings->_quota > 0) {
$folder = $document->getFolder(); $folder = $document->getFolder();
/* Create object for checking access to certain operations */ /* Create object for checking access to certain operations */
$accessop = new SeedDMS_AccessOperation($dms, $document, $user, $settings); $accessop = new SeedDMS_AccessOperation($dms, $user, $settings);
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'folder'=>$folder, 'document'=>$document, 'strictformcheck'=>$settings->_strictFormCheck, 'enablelargefileupload'=>$settings->_enableLargeFileUpload, 'enableadminrevapp'=>$settings->_enableAdminRevApp, 'enableownerrevapp'=>$settings->_enableOwnerRevApp, 'enableselfrevapp'=>$settings->_enableSelfRevApp, 'dropfolderdir'=>$settings->_dropFolderDir, 'workflowmode'=>$settings->_workflowMode, 'presetexpiration'=>$settings->_presetExpirationDate)); $view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'folder'=>$folder, 'document'=>$document, 'strictformcheck'=>$settings->_strictFormCheck, 'enablelargefileupload'=>$settings->_enableLargeFileUpload, 'enableadminrevapp'=>$settings->_enableAdminRevApp, 'enableownerrevapp'=>$settings->_enableOwnerRevApp, 'enableselfrevapp'=>$settings->_enableSelfRevApp, 'dropfolderdir'=>$settings->_dropFolderDir, 'workflowmode'=>$settings->_workflowMode, 'presetexpiration'=>$settings->_presetExpirationDate));

View File

@ -49,7 +49,7 @@ if (!is_object($document)) {
} }
/* Create object for checking access to certain operations */ /* Create object for checking access to certain operations */
$accessop = new SeedDMS_AccessOperation($dms, $document, $user, $settings); $accessop = new SeedDMS_AccessOperation($dms, $user, $settings);
$folder = $document->getFolder(); $folder = $document->getFolder();

View File

@ -26,7 +26,7 @@ include("../inc/inc.Extension.php");
include("../inc/inc.DBInit.php"); include("../inc/inc.DBInit.php");
include("../inc/inc.Authentication.php"); include("../inc/inc.Authentication.php");
include("../inc/inc.ClassUI.php"); include("../inc/inc.ClassUI.php");
include("../inc/inc.ClassAcl.php"); include("../inc/inc.ClassAccessOperation.php");
/** /**
* Include class to preview documents * Include class to preview documents
@ -35,9 +35,10 @@ require_once("SeedDMS/Preview.php");
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user)); $view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user));
$accessop = new SeedDMS_AccessOperation($dms, $user, $settings);
//$aro = SeedDMS_Aro::getInstance($user->getRole(), $dms); if(!$accessop->check_view_access($view, $_GET)) {
//$aco = SeedDMS_Aco::getInstance('Views/'.$tmp[1], $dms); UI::exitError("", getMLText("access_denied"));
}
if (!isset($_GET["folderid"]) || !is_numeric($_GET["folderid"]) || intval($_GET["folderid"])<1) { if (!isset($_GET["folderid"]) || !is_numeric($_GET["folderid"]) || intval($_GET["folderid"])<1) {
$folderid = $settings->_rootFolderID; $folderid = $settings->_rootFolderID;

View File

@ -579,7 +579,7 @@ $(document).ready(function () {
$menuitems['move_document'] = array('link'=>"../out/out.MoveDocument".$docid, 'label'=>'move_document'); $menuitems['move_document'] = array('link'=>"../out/out.MoveDocument".$docid, 'label'=>'move_document');
} }
} }
if($this->params['accessobject']->maySetExpires()) { if($this->params['accessobject']->maySetExpires($document)) {
$menuitems['expires'] = array('link'=>"../out/out.SetExpires".$docid, 'label'=>'expires'); $menuitems['expires'] = array('link'=>"../out/out.SetExpires".$docid, 'label'=>'expires');
// $menuitems[''] = array('link'=>"", 'label'=>''); // $menuitems[''] = array('link'=>"", 'label'=>'');
} }

View File

@ -521,42 +521,42 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style {
/* Only admin has the right to remove version in any case or a regular /* Only admin has the right to remove version in any case or a regular
* user if enableVersionDeletion is on * user if enableVersionDeletion is on
*/ */
if($accessop->mayRemoveVersion()) { if($accessop->mayRemoveVersion($document)) {
print "<li><a href=\"out.RemoveVersion.php?documentid=".$documentid."&version=".$latestContent->getVersion()."\"><i class=\"icon-remove\"></i>".getMLText("rm_version")."</a></li>"; print "<li><a href=\"out.RemoveVersion.php?documentid=".$documentid."&version=".$latestContent->getVersion()."\"><i class=\"icon-remove\"></i>".getMLText("rm_version")."</a></li>";
} }
if($accessop->mayOverrideStatus()) { if($accessop->mayOverrideStatus($document)) {
print "<li><a href='../out/out.OverrideContentStatus.php?documentid=".$documentid."&version=".$latestContent->getVersion()."'><i class=\"icon-align-justify\"></i>".getMLText("change_status")."</a></li>"; print "<li><a href='../out/out.OverrideContentStatus.php?documentid=".$documentid."&version=".$latestContent->getVersion()."'><i class=\"icon-align-justify\"></i>".getMLText("change_status")."</a></li>";
} }
if($accessop->maySetRecipients()) { if($accessop->maySetRecipients($document)) {
print "<li><a href='../out/out.SetRecipients.php?documentid=".$documentid."&version=".$latestContent->getVersion()."'><i class=\"icon-check\"></i>".getMLText("change_recipients")."</a></li>"; print "<li><a href='../out/out.SetRecipients.php?documentid=".$documentid."&version=".$latestContent->getVersion()."'><i class=\"icon-check\"></i>".getMLText("change_recipients")."</a></li>";
} }
if($accessop->maySetRevisors()) { if($accessop->maySetRevisors($document)) {
print "<li><a href='../out/out.SetRevisors.php?documentid=".$documentid."&version=".$latestContent->getVersion()."'><i class=\"icon-refresh\"></i>".getMLText("change_revisors")."</a></li>"; print "<li><a href='../out/out.SetRevisors.php?documentid=".$documentid."&version=".$latestContent->getVersion()."'><i class=\"icon-refresh\"></i>".getMLText("change_revisors")."</a></li>";
} }
if($workflowmode == 'traditional' || $workflowmode == 'traditional_only_approval') { if($workflowmode == 'traditional' || $workflowmode == 'traditional_only_approval') {
// Allow changing reviewers/approvals only if not reviewed // Allow changing reviewers/approvals only if not reviewed
if($accessop->maySetReviewersApprovers()) { if($accessop->maySetReviewersApprovers($document)) {
print "<li><a href='../out/out.SetReviewersApprovers.php?documentid=".$documentid."&version=".$latestContent->getVersion()."'><i class=\"icon-edit\"></i>".getMLText("change_assignments")."</a></li>"; print "<li><a href='../out/out.SetReviewersApprovers.php?documentid=".$documentid."&version=".$latestContent->getVersion()."'><i class=\"icon-edit\"></i>".getMLText("change_assignments")."</a></li>";
} }
} else { } else {
if($accessop->maySetWorkflow()) { if($accessop->maySetWorkflow($document)) {
if(!$workflow) { if(!$workflow) {
print "<li><a href='../out/out.SetWorkflow.php?documentid=".$documentid."&version=".$latestContent->getVersion()."'><i class=\"icon-random\"></i>".getMLText("set_workflow")."</a></li>"; print "<li><a href='../out/out.SetWorkflow.php?documentid=".$documentid."&version=".$latestContent->getVersion()."'><i class=\"icon-random\"></i>".getMLText("set_workflow")."</a></li>";
} }
} }
} }
/* /*
if($accessop->maySetExpires()) { if($accessop->maySetExpires($document)) {
print "<li><a href='../out/out.SetExpires.php?documentid=".$documentid."'><i class=\"icon-time\"></i>".getMLText("set_expiry")."</a></li>"; print "<li><a href='../out/out.SetExpires.php?documentid=".$documentid."'><i class=\"icon-time\"></i>".getMLText("set_expiry")."</a></li>";
} }
*/ */
if($dms->getAllTransmittals($user)) { if($dms->getAllTransmittals($user)) {
print "<li><a href=\"out.AddToTransmittal.php?documentid=".$documentid."&version=".$latestContent->getVersion()."\"><i class=\"icon-list\"></i>".getMLText("add_to_transmittal")."</a></li>"; print "<li><a href=\"out.AddToTransmittal.php?documentid=".$documentid."&version=".$latestContent->getVersion()."\"><i class=\"icon-list\"></i>".getMLText("add_to_transmittal")."</a></li>";
} }
if($accessop->mayEditComment()) { if($accessop->mayEditComment($document)) {
print "<li><a href=\"out.EditComment.php?documentid=".$documentid."&version=".$latestContent->getVersion()."\"><i class=\"icon-comment\"></i>".getMLText("edit_comment")."</a></li>"; print "<li><a href=\"out.EditComment.php?documentid=".$documentid."&version=".$latestContent->getVersion()."\"><i class=\"icon-comment\"></i>".getMLText("edit_comment")."</a></li>";
} }
if($accessop->mayEditAttributes()) { if($accessop->mayEditAttributes($document)) {
print "<li><a href=\"out.EditAttributes.php?documentid=".$documentid."&version=".$latestContent->getVersion()."\"><i class=\"icon-edit\"></i>".getMLText("edit_attributes")."</a></li>"; print "<li><a href=\"out.EditAttributes.php?documentid=".$documentid."&version=".$latestContent->getVersion()."\"><i class=\"icon-edit\"></i>".getMLText("edit_attributes")."</a></li>";
} }
@ -676,7 +676,7 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style {
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($accessop->mayReview()) { if($accessop->mayReview($document)) {
if ($is_reviewer && $r["status"]==0) { if ($is_reviewer && $r["status"]==0) {
print "<li><a href=\"../out/out.ReviewDocument.php?documentid=".$documentid."&version=".$latestContent->getVersion()."&reviewid=".$r['reviewID']."\" class=\"btn btn-mini\">".getMLText("add_review")."</a></li>"; print "<li><a href=\"../out/out.ReviewDocument.php?documentid=".$documentid."&version=".$latestContent->getVersion()."&reviewid=".$r['reviewID']."\" class=\"btn btn-mini\">".getMLText("add_review")."</a></li>";
}else if (($updateUser==$user)&&(($r["status"]==1)||($r["status"]==-1))&&(!$document->hasExpired())){ }else if (($updateUser==$user)&&(($r["status"]==1)||($r["status"]==-1))&&(!$document->hasExpired())){
@ -745,7 +745,7 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style {
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($accessop->mayApprove()) { if($accessop->mayApprove($document)) {
if ($is_approver && $a['status'] == 0 /*$status["status"]==S_DRAFT_APP*/) { if ($is_approver && $a['status'] == 0 /*$status["status"]==S_DRAFT_APP*/) {
print "<li><a class=\"btn btn-mini\" href=\"../out/out.ApproveDocument.php?documentid=".$documentid."&version=".$latestContent->getVersion()."&approveid=".$a['approveID']."\">".getMLText("add_approval")."</a></li>"; print "<li><a class=\"btn btn-mini\" href=\"../out/out.ApproveDocument.php?documentid=".$documentid."&version=".$latestContent->getVersion()."&approveid=".$a['approveID']."\">".getMLText("add_approval")."</a></li>";
}else if (($updateUser==$user)&&(($a["status"]==1)||($a["status"]==-1))&&(!$document->hasExpired())){ }else if (($updateUser==$user)&&(($a["status"]==1)||($a["status"]==-1))&&(!$document->hasExpired())){
@ -1028,7 +1028,7 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style {
print "<td>".getReceiptStatusText($r["status"])."</td>\n"; print "<td>".getReceiptStatusText($r["status"])."</td>\n";
print "<td><ul class=\"unstyled\">"; print "<td><ul class=\"unstyled\">";
if($accessop->mayReceipt()) { if($accessop->mayReceipt($document)) {
if ($is_recipient && $r["status"]==0) { if ($is_recipient && $r["status"]==0) {
print "<li><a href=\"../out/out.ReceiptDocument.php?documentid=".$documentid."&version=".$latestContent->getVersion()."&receiptid=".$r['receiptID']."\" class=\"btn btn-mini\">".getMLText("add_receipt")."</a></li>"; print "<li><a href=\"../out/out.ReceiptDocument.php?documentid=".$documentid."&version=".$latestContent->getVersion()."&receiptid=".$r['receiptID']."\" class=\"btn btn-mini\">".getMLText("add_receipt")."</a></li>";
}else if (($updateUser==$user)&&(($r["status"]==1)||($r["status"]==-1))&&(!$document->hasExpired())){ }else if (($updateUser==$user)&&(($r["status"]==1)||($r["status"]==-1))&&(!$document->hasExpired())){
@ -1130,7 +1130,7 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style {
print "<td>".getRevisionStatusText($r["status"])."</td>\n"; print "<td>".getRevisionStatusText($r["status"])."</td>\n";
print "<td><ul class=\"unstyled\">"; print "<td><ul class=\"unstyled\">";
if($accessop->mayRevise()) { if($accessop->mayRevise($document)) {
if ($is_recipient && $r["status"]==0) { if ($is_recipient && $r["status"]==0) {
print "<li><a href=\"../out/out.ReviseDocument.php?documentid=".$documentid."&version=".$latestContent->getVersion()."&revisionid=".$r['revisionID']."\" class=\"btn btn-mini\">".getMLText("add_revision")."</a></li>"; print "<li><a href=\"../out/out.ReviseDocument.php?documentid=".$documentid."&version=".$latestContent->getVersion()."&revisionid=".$r['revisionID']."\" class=\"btn btn-mini\">".getMLText("add_revision")."</a></li>";
} elseif (($updateUser==$user)&&(($r["status"]==1)||($r["status"]==-1))&&(!$document->hasExpired())){ } elseif (($updateUser==$user)&&(($r["status"]==1)||($r["status"]==-1))&&(!$document->hasExpired())){
@ -1242,13 +1242,13 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style {
/* Only admin has the right to remove version in any case or a regular /* Only admin has the right to remove version in any case or a regular
* user if enableVersionDeletion is on * user if enableVersionDeletion is on
*/ */
if($accessop->mayRemoveVersion()) { if($accessop->mayRemoveVersion($document)) {
print "<li><a href=\"out.RemoveVersion.php?documentid=".$documentid."&version=".$version->getVersion()."\"><i class=\"icon-remove\"></i>".getMLText("rm_version")."</a></li>"; print "<li><a href=\"out.RemoveVersion.php?documentid=".$documentid."&version=".$version->getVersion()."\"><i class=\"icon-remove\"></i>".getMLText("rm_version")."</a></li>";
} }
if($accessop->mayEditComment()) { if($accessop->mayEditComment($document)) {
print "<li><a href=\"out.EditComment.php?documentid=".$document->getID()."&version=".$version->getVersion()."\"><i class=\"icon-comment\"></i>".getMLText("edit_comment")."</a></li>"; print "<li><a href=\"out.EditComment.php?documentid=".$document->getID()."&version=".$version->getVersion()."\"><i class=\"icon-comment\"></i>".getMLText("edit_comment")."</a></li>";
} }
if($accessop->mayEditAttributes()) { if($accessop->mayEditAttributes($document)) {
print "<li><a href=\"out.EditAttributes.php?documentid=".$document->getID()."&version=".$latestContent->getVersion()."\"><i class=\"icon-edit\"></i>".getMLText("edit_attributes")."</a></li>"; print "<li><a href=\"out.EditAttributes.php?documentid=".$document->getID()."&version=".$latestContent->getVersion()."\"><i class=\"icon-edit\"></i>".getMLText("edit_attributes")."</a></li>";
} }
print "<li><a href='../out/out.DocumentVersionDetail.php?documentid=".$documentid."&version=".$version->getVersion()."'><i class=\"icon-info-sign\"></i>".getMLText("details")."</a></li>"; print "<li><a href='../out/out.DocumentVersionDetail.php?documentid=".$documentid."&version=".$version->getVersion()."'><i class=\"icon-info-sign\"></i>".getMLText("details")."</a></li>";