diff --git a/inc/inc.ClassAccessOperation.php b/inc/inc.ClassAccessOperation.php index 3f0b99b07..d4c904f8c 100644 --- a/inc/inc.ClassAccessOperation.php +++ b/inc/inc.ClassAccessOperation.php @@ -162,7 +162,8 @@ class SeedDMS_AccessOperation { if($this->obj->isType('document')) { $latestContent = $this->obj->getLatestContent(); $workflow = $latestContent->getWorkflow(); - if ((($this->settings->_enableVersionModification && ($this->obj->getAccessMode($this->user) == M_ALL)) || $this->user->isAdmin()) && (!$workflow || ($workflow->getInitState()->getID() == $latestContent->getWorkflowState()->getID()))) { + $workflowstate = $latestContent->getWorkflowState(); + if ((($this->settings->_enableVersionModification && ($this->obj->getAccessMode($this->user) == M_ALL)) || $this->user->isAdmin()) && (!$workflow || ($workflowstate && ($workflow->getInitState()->getID() == $workflowstate->getID())))) { return true; } } @@ -226,7 +227,8 @@ class SeedDMS_AccessOperation { $latestContent = $this->obj->getLatestContent(); $status = $latestContent->getStatus(); $workflow = $latestContent->getWorkflow(); - if ((($this->settings->_enableVersionModification && ($this->obj->getAccessMode($this->user) >= M_READWRITE)) || $this->user->isAdmin()) && (in_array($status["status"], array(S_DRAFT_REV, S_DRAFT_APP)) || ($workflow && $workflow->getInitState()->getID() == $latestContent->getWorkflowState()->getID()))) { + $workflowstate = $latestContent->getWorkflowState(); + if ((($this->settings->_enableVersionModification && ($this->obj->getAccessMode($this->user) >= M_READWRITE)) || $this->user->isAdmin()) && (in_array($status["status"], array(S_DRAFT_REV, S_DRAFT_APP)) || ($workflow && $workflowstate && $workflow->getInitState()->getID() == $workflowstate->getID()))) { return true; } }