check if getLatestContent() returns a version

This commit is contained in:
Uwe Steinmann 2016-04-12 07:54:22 +02:00
parent 130c894a35
commit be8be01ed5

View File

@ -64,11 +64,12 @@ class SeedDMS_AccessOperation {
*/ */
function mayEditVersion($document) { /* {{{ */ function mayEditVersion($document) { /* {{{ */
if(get_class($document) == $this->dms->getClassname('document')) { if(get_class($document) == $this->dms->getClassname('document')) {
$version = $document->getLatestContent(); if($latestContent = $document->getLatestContent()) {
if (!isset($this->settings->_editOnlineFileTypes) || !is_array($this->settings->_editOnlineFileTypes) || !in_array(strtolower($version->getFileType()), $this->settings->_editOnlineFileTypes)) if (!isset($this->settings->_editOnlineFileTypes) || !is_array($this->settings->_editOnlineFileTypes) || !in_array(strtolower($latestContent->getFileType()), $this->settings->_editOnlineFileTypes))
return false; return false;
if ($document->getAccessMode($this->user) == M_ALL || $this->user->isAdmin()) { if ($document->getAccessMode($this->user) == M_ALL || $this->user->isAdmin()) {
return true; return true;
}
} }
} }
return false; return false;
@ -105,10 +106,11 @@ class SeedDMS_AccessOperation {
*/ */
function mayOverrideStatus($document) { /* {{{ */ function mayOverrideStatus($document) { /* {{{ */
if(get_class($document) == $this->dms->getClassname('document')) { if(get_class($document) == $this->dms->getClassname('document')) {
$latestContent = $document->getLatestContent(); if($latestContent = $document->getLatestContent()) {
$status = $latestContent->getStatus(); $status = $latestContent->getStatus();
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)) { 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;
}
} }
} }
return false; return false;
@ -125,10 +127,11 @@ class SeedDMS_AccessOperation {
*/ */
function maySetReviewersApprovers($document) { /* {{{ */ function maySetReviewersApprovers($document) { /* {{{ */
if(get_class($document) == $this->dms->getClassname('document')) { if(get_class($document) == $this->dms->getClassname('document')) {
$latestContent = $document->getLatestContent(); if($latestContent = $document->getLatestContent()) {
$status = $latestContent->getStatus(); $status = $latestContent->getStatus();
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')) { 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;
}
} }
} }
return false; return false;
@ -145,10 +148,11 @@ class SeedDMS_AccessOperation {
*/ */
function maySetRecipients($document) { /* {{{ */ function maySetRecipients($document) { /* {{{ */
if(get_class($document) == $this->dms->getClassname('document')) { if(get_class($document) == $this->dms->getClassname('document')) {
$latestContent = $document->getLatestContent(); if($latestContent = $document->getLatestContent()) {
$status = $latestContent->getStatus(); $status = $latestContent->getStatus();
if ((($this->settings->_enableVersionModification && ($document->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;
}
} }
} }
return false; return false;
@ -165,10 +169,11 @@ class SeedDMS_AccessOperation {
*/ */
function maySetRevisors($document) { /* {{{ */ function maySetRevisors($document) { /* {{{ */
if(get_class($document) == $this->dms->getClassname('document')) { if(get_class($document) == $this->dms->getClassname('document')) {
$latestContent = $document->getLatestContent(); if($latestContent = $document->getLatestContent()) {
$status = $latestContent->getStatus(); $status = $latestContent->getStatus();
if ((($this->settings->_enableVersionModification && ($document->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;
}
} }
} }
return false; return false;
@ -185,10 +190,11 @@ class SeedDMS_AccessOperation {
*/ */
function maySetWorkflow($document) { /* {{{ */ function maySetWorkflow($document) { /* {{{ */
if(get_class($document) == $this->dms->getClassname('document')) { if(get_class($document) == $this->dms->getClassname('document')) {
$latestContent = $document->getLatestContent(); if($latestContent = $document->getLatestContent()) {
$workflow = $latestContent->getWorkflow(); $workflow = $latestContent->getWorkflow();
if ((($this->settings->_enableVersionModification && ($document->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;
}
} }
} }
return false; return false;
@ -202,10 +208,11 @@ class SeedDMS_AccessOperation {
*/ */
function maySetExpires($document) { /* {{{ */ function maySetExpires($document) { /* {{{ */
if(get_class($document) == $this->dms->getClassname('document')) { if(get_class($document) == $this->dms->getClassname('document')) {
$latestContent = $document->getLatestContent(); if($latestContent = $document->getLatestContent()) {
$status = $latestContent->getStatus(); $status = $latestContent->getStatus();
if ((($document->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;
}
} }
} }
return false; return false;
@ -228,10 +235,11 @@ class SeedDMS_AccessOperation {
return false; return false;
} }
} }
$latestContent = $document->getLatestContent(); if($latestContent = $document->getLatestContent()) {
$status = $latestContent->getStatus(); $status = $latestContent->getStatus();
if ((($this->settings->_enableVersionModification && ($document->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;
}
} }
} }
return false; return false;
@ -248,11 +256,12 @@ class SeedDMS_AccessOperation {
*/ */
function mayEditAttributes($document) { /* {{{ */ function mayEditAttributes($document) { /* {{{ */
if(get_class($document) == $this->dms->getClassname('document')) { if(get_class($document) == $this->dms->getClassname('document')) {
$latestContent = $document->getLatestContent(); if($latestContent = $document->getLatestContent()) {
$status = $latestContent->getStatus(); $status = $latestContent->getStatus();
$workflow = $latestContent->getWorkflow(); $workflow = $latestContent->getWorkflow();
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()))) { 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;
}
} }
} }
return false; return false;
@ -267,10 +276,11 @@ class SeedDMS_AccessOperation {
*/ */
function mayReview($document) { /* {{{ */ function mayReview($document) { /* {{{ */
if(get_class($document) == $this->dms->getClassname('document')) { if(get_class($document) == $this->dms->getClassname('document')) {
$latestContent = $document->getLatestContent(); if($latestContent = $document->getLatestContent()) {
$status = $latestContent->getStatus(); $status = $latestContent->getStatus();
if ($status["status"]!=S_OBSOLETE) { if ($status["status"]!=S_OBSOLETE) {
return true; return true;
}
} }
} }
return false; return false;
@ -286,10 +296,11 @@ class SeedDMS_AccessOperation {
*/ */
function mayApprove($document) { /* {{{ */ function mayApprove($document) { /* {{{ */
if(get_class($document) == $this->dms->getClassname('document')) { if(get_class($document) == $this->dms->getClassname('document')) {
$latestContent = $document->getLatestContent(); if($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;
}
} }
} }
return false; return false;
@ -304,10 +315,11 @@ class SeedDMS_AccessOperation {
*/ */
function mayReceipt($document) { /* {{{ */ function mayReceipt($document) { /* {{{ */
if(get_class($document) == $this->dms->getClassname('document')) { if(get_class($document) == $this->dms->getClassname('document')) {
$latestContent = $document->getLatestContent(); if($latestContent = $document->getLatestContent()) {
$status = $latestContent->getStatus(); $status = $latestContent->getStatus();
if ($status["status"]!=S_OBSOLETE) { if ($status["status"]!=S_OBSOLETE) {
return true; return true;
}
} }
} }
return false; return false;
@ -322,10 +334,11 @@ class SeedDMS_AccessOperation {
*/ */
function mayRevise($document) { /* {{{ */ function mayRevise($document) { /* {{{ */
if(get_class($document) == $this->dms->getClassname('document')) { if(get_class($document) == $this->dms->getClassname('document')) {
$latestContent = $document->getLatestContent(); if($latestContent = $document->getLatestContent()) {
$status = $latestContent->getStatus(); $status = $latestContent->getStatus();
if ($status["status"]!=S_OBSOLETE) { if ($status["status"]!=S_OBSOLETE) {
return true; return true;
}
} }
} }
return false; return false;