mirror of
https://git.code.sf.net/p/seeddms/code
synced 2025-05-13 13:11:31 +00:00
check if latest content exists
This commit is contained in:
parent
ff9385bf1e
commit
61a5dbc2b9
|
@ -107,10 +107,11 @@ class SeedDMS_AccessOperation {
|
||||||
*/
|
*/
|
||||||
function mayOverwriteStatus() { /* {{{ */
|
function mayOverwriteStatus() { /* {{{ */
|
||||||
if($this->obj->isType('document')) {
|
if($this->obj->isType('document')) {
|
||||||
$latestContent = $this->obj->getLatestContent();
|
if($latestContent = $this->obj->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_OBSOLETE )) {
|
if ((($this->settings->_enableVersionModification && ($this->obj->getAccessMode($this->user) == M_ALL)) || $this->user->isAdmin()) && ($status["status"]==S_RELEASED || $status["status"]==S_OBSOLETE )) {
|
||||||
return true;
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -128,22 +129,23 @@ class SeedDMS_AccessOperation {
|
||||||
*/
|
*/
|
||||||
function maySetReviewersApprovers() { /* {{{ */
|
function maySetReviewersApprovers() { /* {{{ */
|
||||||
if($this->obj->isType('document')) {
|
if($this->obj->isType('document')) {
|
||||||
$latestContent = $this->obj->getLatestContent();
|
if($latestContent = $this->obj->getLatestContent()) {
|
||||||
$status = $latestContent->getStatus();
|
$status = $latestContent->getStatus();
|
||||||
$reviewstatus = $latestContent->getReviewStatus();
|
$reviewstatus = $latestContent->getReviewStatus();
|
||||||
$hasreview = false;
|
$hasreview = false;
|
||||||
foreach($reviewstatus as $r) {
|
foreach($reviewstatus as $r) {
|
||||||
if($r['status'] == 1 || $r['status'] == -1)
|
if($r['status'] == 1 || $r['status'] == -1)
|
||||||
$hasreview = true;
|
$hasreview = true;
|
||||||
}
|
}
|
||||||
$approvalstatus = $latestContent->getApprovalStatus();
|
$approvalstatus = $latestContent->getApprovalStatus();
|
||||||
$hasapproval = false;
|
$hasapproval = false;
|
||||||
foreach($approvalstatus as $r) {
|
foreach($approvalstatus as $r) {
|
||||||
if($r['status'] == 1 || $r['status'] == -1)
|
if($r['status'] == 1 || $r['status'] == -1)
|
||||||
$hasapproval = true;
|
$hasapproval = true;
|
||||||
}
|
}
|
||||||
if ((($this->settings->_enableVersionModification && ($this->obj->getAccessMode($this->user) == M_ALL)) || $this->user->isAdmin()) && (($status["status"]==S_DRAFT_REV && !$hasreview) || ($status["status"]==S_DRAFT_APP && !$hasreview && !$hasapproval))) {
|
if ((($this->settings->_enableVersionModification && ($this->obj->getAccessMode($this->user) == M_ALL)) || $this->user->isAdmin()) && (($status["status"]==S_DRAFT_REV && !$hasreview) || ($status["status"]==S_DRAFT_APP && !$hasreview && !$hasapproval))) {
|
||||||
return true;
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -160,11 +162,12 @@ class SeedDMS_AccessOperation {
|
||||||
*/
|
*/
|
||||||
function maySetWorkflow() { /* {{{ */
|
function maySetWorkflow() { /* {{{ */
|
||||||
if($this->obj->isType('document')) {
|
if($this->obj->isType('document')) {
|
||||||
$latestContent = $this->obj->getLatestContent();
|
if($latestContent = $this->obj->getLatestContent()) {
|
||||||
$workflow = $latestContent->getWorkflow();
|
$workflow = $latestContent->getWorkflow();
|
||||||
$workflowstate = $latestContent->getWorkflowState();
|
$workflowstate = $latestContent->getWorkflowState();
|
||||||
if ((($this->settings->_enableVersionModification && ($this->obj->getAccessMode($this->user) == M_ALL)) || $this->user->isAdmin()) && (!$workflow || ($workflowstate && ($workflow->getInitState()->getID() == $workflowstate->getID())))) {
|
if ((($this->settings->_enableVersionModification && ($this->obj->getAccessMode($this->user) == M_ALL)) || $this->user->isAdmin()) && (!$workflow || ($workflowstate && ($workflow->getInitState()->getID() == $workflowstate->getID())))) {
|
||||||
return true;
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -178,10 +181,11 @@ class SeedDMS_AccessOperation {
|
||||||
*/
|
*/
|
||||||
function maySetExpires() { /* {{{ */
|
function maySetExpires() { /* {{{ */
|
||||||
if($this->obj->isType('document')) {
|
if($this->obj->isType('document')) {
|
||||||
$latestContent = $this->obj->getLatestContent();
|
if($latestContent = $this->obj->getLatestContent()) {
|
||||||
$status = $latestContent->getStatus();
|
$status = $latestContent->getStatus();
|
||||||
if ((($this->obj->getAccessMode($this->user) == M_ALL) || $this->user->isAdmin()) && ($status["status"]!=S_OBSOLETE)) {
|
if ((($this->obj->getAccessMode($this->user) == M_ALL) || $this->user->isAdmin()) && ($status["status"]!=S_OBSOLETE)) {
|
||||||
return true;
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -206,10 +210,11 @@ class SeedDMS_AccessOperation {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$latestContent = $this->obj->getLatestContent();
|
if($latestContent = $this->obj->getLatestContent()) {
|
||||||
$status = $latestContent->getStatus();
|
$status = $latestContent->getStatus();
|
||||||
if (($this->settings->_enableVersionModification || $this->user->isAdmin()) && !in_array($status["status"], array(S_OBSOLETE, S_EXPIRED))) {
|
if (($this->settings->_enableVersionModification || $this->user->isAdmin()) && !in_array($status["status"], array(S_OBSOLETE, S_EXPIRED))) {
|
||||||
return true;
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -225,14 +230,15 @@ class SeedDMS_AccessOperation {
|
||||||
*/
|
*/
|
||||||
function mayEditAttributes() { /* {{{ */
|
function mayEditAttributes() { /* {{{ */
|
||||||
if($this->obj->isType('document')) {
|
if($this->obj->isType('document')) {
|
||||||
$latestContent = $this->obj->getLatestContent();
|
if($latestContent = $this->obj->getLatestContent()) {
|
||||||
$status = $latestContent->getStatus();
|
$status = $latestContent->getStatus();
|
||||||
$workflow = $latestContent->getWorkflow();
|
$workflow = $latestContent->getWorkflow();
|
||||||
$workflowstate = $latestContent->getWorkflowState();
|
$workflowstate = $latestContent->getWorkflowState();
|
||||||
if($this->obj->getAccessMode($this->user) < M_READWRITE)
|
if($this->obj->getAccessMode($this->user) < M_READWRITE)
|
||||||
return false;
|
return false;
|
||||||
if ($this->settings->_enableVersionModification || in_array($status["status"], array(S_DRAFT_REV, S_DRAFT_APP)) || ($workflow && $workflowstate && $workflow->getInitState()->getID() == $workflowstate->getID())) {
|
if ($this->settings->_enableVersionModification || in_array($status["status"], array(S_DRAFT_REV, S_DRAFT_APP)) || ($workflow && $workflowstate && $workflow->getInitState()->getID() == $workflowstate->getID())) {
|
||||||
return true;
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -247,10 +253,11 @@ class SeedDMS_AccessOperation {
|
||||||
*/
|
*/
|
||||||
function mayReview() { /* {{{ */
|
function mayReview() { /* {{{ */
|
||||||
if($this->obj->isType('document')) {
|
if($this->obj->isType('document')) {
|
||||||
$latestContent = $this->obj->getLatestContent();
|
if($latestContent = $this->obj->getLatestContent()) {
|
||||||
$status = $latestContent->getStatus();
|
$status = $latestContent->getStatus();
|
||||||
if ($status["status"]==S_DRAFT_REV) {
|
if ($status["status"]==S_DRAFT_REV) {
|
||||||
return true;
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -282,10 +289,11 @@ class SeedDMS_AccessOperation {
|
||||||
*/
|
*/
|
||||||
function mayApprove() { /* {{{ */
|
function mayApprove() { /* {{{ */
|
||||||
if($this->obj->isType('document')) {
|
if($this->obj->isType('document')) {
|
||||||
$latestContent = $this->obj->getLatestContent();
|
if($latestContent = $this->obj->getLatestContent()) {
|
||||||
$status = $latestContent->getStatus();
|
$status = $latestContent->getStatus();
|
||||||
if ($status["status"]==S_DRAFT_APP) {
|
if ($status["status"]==S_DRAFT_APP) {
|
||||||
return true;
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user