enable turn off of updating document reception

This commit is contained in:
Uwe Steinmann 2017-01-17 14:20:33 +01:00
parent 3fee35fd3a
commit 56e7f567c7
5 changed files with 30 additions and 4 deletions

View File

@ -355,6 +355,21 @@ class SeedDMS_AccessOperation {
return false;
} /* }}} */
/**
* Check if a review maybe edited
*
* A review may only be updated by the user who originaly addedd the
* review and if it is allowed in the settings
*/
function mayUpdateReceipt($document, $updateUser) { /* {{{ */
if(get_class($document) == 'SeedDMS_Core_Document') {
if($this->settings->_enableUpdateReceipt && ($updateUser == $this->user) && !$document->hasExpired()) {
return true;
}
}
return false;
} /* }}} */
/**
* Check if document content may be revised
*

View File

@ -143,6 +143,8 @@ class Settings { /* {{{ */
var $_enableSelfRevApp = false;
// enable/disable update of a review/approval by the reviewer/approver
var $_enableUpdateRevApp = false;
// enable/disable update of a receipt by the recipient
var $_enableUpdateReceipt = false;
// enable/disable listing administrator as recipient
var $_enableAdminReceipt = false;
// enable/disable listing owner as recipient
@ -596,6 +598,7 @@ class Settings { /* {{{ */
$this->_enableUpdateRevApp = Settings::boolval($tab["enableUpdateRevApp"]);
$this->_enableAdminReceipt = Settings::boolval($tab["enableAdminReceipt"]);
$this->_enableOwnerReceipt = Settings::boolval($tab["enableOwnerReceipt"]);
$this->_enableUpdateReceipt = Settings::boolval($tab["enableUpdateReceipt"]);
$this->_presetExpirationDate = strval($tab["presetExpirationDate"]);
$this->_initialDocumentStatus = intval($tab["initialDocumentStatus"]);
$this->_versioningFileName = strval($tab["versioningFileName"]);
@ -898,6 +901,7 @@ class Settings { /* {{{ */
$this->setXMLAttributValue($node, "enableUpdateRevApp", $this->_enableUpdateRevApp);
$this->setXMLAttributValue($node, "enableAdminReceipt", $this->_enableAdminReceipt);
$this->setXMLAttributValue($node, "enableOwnerReceipt", $this->_enableOwnerReceipt);
$this->setXMLAttributValue($node, "enableUpdateReceipt", $this->_enableUpdateReceipt);
$this->setXMLAttributValue($node, "presetExpirationDate", $this->_presetExpirationDate);
$this->setXMLAttributValue($node, "initialDocumentStatus", $this->_initialDocumentStatus);
$this->setXMLAttributValue($node, "versioningFileName", $this->_versioningFileName);

View File

@ -176,6 +176,7 @@ if ($action == "saveSettings")
$settings->_enableUpdateRevApp = getBoolValue("enableUpdateRevApp");
$settings->_enableAdminReceipt = getBoolValue("enableAdminReceipt");
$settings->_enableOwnerReceipt = getBoolValue("enableOwnerReceipt");
$settings->_enableUpdateReceipt = getBoolValue("enableUpdateReceipt");
$settings->_enableVersionDeletion = getBoolValue("enableVersionDeletion");
$settings->_enableVersionModification = getBoolValue("enableVersionModification");
$settings->_enableDuplicateDocNames = getBoolValue("enableDuplicateDocNames");

View File

@ -666,6 +666,10 @@ if(!is_writeable($settings->_configFilePath)) {
<td><?php printMLText("settings_enableOwnerReceipt");?>:</td>
<td><input name="enableOwnerReceipt" type="checkbox" <?php if ($settings->_enableOwnerReceipt) echo "checked" ?> /></td>
</tr>
<tr title="<?php printMLText("settings_enableUpdateReceipt_desc");?>">
<td><?php printMLText("settings_enableUpdateReceipt");?>:</td>
<td><input name="enableUpdateReceipt" type="checkbox" <?php if ($settings->_enableUpdateReceipt) echo "checked" ?> /></td>
</tr>
<tr title="<?php printMLText("settings_enableVersionDeletion_desc");?>">
<td><?php printMLText("settings_enableVersionDeletion");?>:</td>
<td><input name="enableVersionDeletion" type="checkbox" <?php if ($settings->_enableVersionDeletion) echo "checked" ?> /></td>

View File

@ -1172,10 +1172,12 @@ class SeedDMS_View_ViewDocument extends SeedDMS_Bootstrap_Style {
print "<td><ul class=\"unstyled\">";
if($accessop->mayReceipt($document)) {
if ($is_recipient && $r["status"]==0) {
print "<li>".$this->html_link('ReceiptDocument', array('documentid'=>$documentid, 'version'=>$latestContent->getVersion(), 'receiptid'=>$r['receiptID']), array('class'=>'btn btn-mini'), getMLText("add_receipt"), false, true)."</li>";
}else if (($updateUser==$user)&&(($r["status"]==1)||($r["status"]==-1))&&(!$document->hasExpired())){
print "<li>".$this->html_link('ReceiptDocument', array('documentid'=>$documentid, 'version'=>$latestContent->getVersion(), 'receiptid'=>$r['receiptID']), array('class'=>'btn btn-mini'), getMLText("edit"), false, true)."</li>";
if ($is_recipient) {
if($r["status"]==0) {
print "<li>".$this->html_link('ReceiptDocument', array('documentid'=>$documentid, 'version'=>$latestContent->getVersion(), 'receiptid'=>$r['receiptID']), array('class'=>'btn btn-mini'), getMLText("add_receipt"), false, true)."</li>";
} elseif ($accessop->mayUpdateReceipt($document, $updateUser) && (($r["status"]==1)||($r["status"]==-1))) {
print "<li>".$this->html_link('ReceiptDocument', array('documentid'=>$documentid, 'version'=>$latestContent->getVersion(), 'receiptid'=>$r['receiptID']), array('class'=>'btn btn-mini'), getMLText("edit"), false, true)."</li>";
}
}
}