check for workflow type when evaluating post vars

This commit is contained in:
Uwe Steinmann 2015-03-27 17:21:37 +01:00
parent 57520f27cf
commit 645fbe7def
2 changed files with 178 additions and 165 deletions

View File

@ -136,7 +136,10 @@ $reviewers["i"] = array();
$reviewers["g"] = array();
$approvers["i"] = array();
$approvers["g"] = array();
$workflow = null;
if($settings->_workflowMode == 'traditional' || $settings->_workflowMode == 'traditional_only_approval') {
if($settings->_workflowMode == 'traditional') {
// Retrieve the list of individual reviewers from the form.
if (isset($_POST["indReviewers"])) {
foreach ($_POST["indReviewers"] as $ind) {
@ -149,6 +152,7 @@ if (isset($_POST["grpReviewers"])) {
$reviewers["g"][] = $grp;
}
}
}
// Retrieve the list of individual approvers from the form.
if (isset($_POST["indApprovers"])) {
@ -162,9 +166,9 @@ if (isset($_POST["grpApprovers"])) {
$approvers["g"][] = $grp;
}
}
// add mandatory reviewers/approvers
$docAccess = $folder->getReadAccessList($settings->_enableAdminRevApp, $settings->_enableOwnerRevApp);
if($settings->_workflowMode == 'traditional') {
$res=$user->getMandatoryReviewers();
foreach ($res as $r){
@ -183,6 +187,7 @@ foreach ($res as $r){
}
}
}
}
$res=$user->getMandatoryApprovers();
foreach ($res as $r){
@ -201,14 +206,14 @@ foreach ($res as $r){
}
}
}
} elseif($settings->_workflowMode == 'advanced') {
if(!$workflow = $user->getMandatoryWorkflow()) {
if(isset($_POST["workflow"]))
$workflow = $dms->getWorkflow($_POST["workflow"]);
else
$workflow = null;
}
}
if($settings->_dropFolderDir) {
if(isset($_POST["dropfolderfileform1"]) && $_POST["dropfolderfileform1"]) {

View File

@ -101,7 +101,14 @@ if ($_FILES['userfile']['error'] == 0) {
// Get the list of reviewers and approvers for this document.
$reviewers = array();
$approvers = array();
$reviewers["i"] = array();
$reviewers["g"] = array();
$approvers["i"] = array();
$approvers["g"] = array();
$workflow = null;
if($settings->_workflowMode == 'traditional' || $settings->_workflowMode == 'traditional_only_approval') {
if($settings->_workflowMode == 'traditional') {
// Retrieve the list of individual reviewers from the form.
$reviewers["i"] = array();
if (isset($_POST["indReviewers"])) {
@ -116,6 +123,7 @@ if ($_FILES['userfile']['error'] == 0) {
$reviewers["g"][] = $grp;
}
}
}
// Retrieve the list of individual approvers from the form.
$approvers["i"] = array();
@ -134,6 +142,7 @@ if ($_FILES['userfile']['error'] == 0) {
// add mandatory reviewers/approvers
$docAccess = $folder->getReadAccessList($settings->_enableAdminRevApp, $settings->_enableOwnerRevApp);
if($settings->_workflowMode == 'traditional') {
$res=$user->getMandatoryReviewers();
foreach ($res as $r){
@ -152,6 +161,7 @@ if ($_FILES['userfile']['error'] == 0) {
}
}
}
}
$res=$user->getMandatoryApprovers();
foreach ($res as $r){
@ -170,8 +180,14 @@ if ($_FILES['userfile']['error'] == 0) {
}
}
}
$workflow = $user->getMandatoryWorkflow();
} elseif($settings->_workflowMode == 'advanced') {
if(!$workflow = $user->getMandatoryWorkflow()) {
if(isset($_POST["workflow"]))
$workflow = $dms->getWorkflow($_POST["workflow"]);
else
$workflow = null;
}
}
if(isset($_POST["attributes"]) && $_POST["attributes"]) {
$attributes = $_POST["attributes"];
@ -206,25 +222,7 @@ if ($_FILES['userfile']['error'] == 0) {
if ($notifier){
$notifyList = $document->getNotifyList();
$folder = $document->getFolder();
/*
$subject = "###SITENAME###: ".$document->getName()." - ".getMLText("document_updated_email");
$message = getMLText("document_updated_email")."\r\n";
$message .=
getMLText("document").": ".$document->getName()."\r\n".
getMLText("folder").": ".$folder->getFolderPathPlain()."\r\n".
getMLText("comment").": ".$document->getComment()."\r\n".
"URL: ###URL_PREFIX###out/out.ViewDocument.php?documentid=".$document->getID()."\r\n";
$notifier->toList($user, $document->_notifyList["users"], $subject, $message);
foreach ($document->_notifyList["groups"] as $grp) {
$notifier->toGroup($user, $grp, $subject, $message);
}
// if user is not owner send notification to owner
if ($user->getID()!= $document->getOwner()->getID())
$notifier->toIndividual($user, $document->getOwner(), $subject, $message);
*/
$subject = "document_updated_email_subject";
$message = "document_updated_email_body";
$params = array();
@ -244,6 +242,29 @@ if ($_FILES['userfile']['error'] == 0) {
if ($user->getID() != $document->getOwner()->getID())
$notifier->toIndividual($user, $document->getOwner(), $subject, $message, $params);
if($workflow && $settings->_enableNotificationWorkflow) {
$subject = "request_workflow_action_email_subject";
$message = "request_workflow_action_email_body";
$params = array();
$params['name'] = $document->getName();
$params['version'] = $contentResult->getContent()->getVersion();
$params['workflow'] = $workflow->getName();
$params['folder_path'] = $folder->getFolderPathPlain();
$params['current_state'] = $workflow->getInitState()->getName();
$params['username'] = $user->getFullName();
$params['sitename'] = $settings->_siteName;
$params['http_root'] = $settings->_httpRoot;
$params['url'] = "http".((isset($_SERVER['HTTPS']) && (strcmp($_SERVER['HTTPS'],'off')!=0)) ? "s" : "")."://".$_SERVER['HTTP_HOST'].$settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID();
foreach($workflow->getNextTransitions($workflow->getInitState()) as $ntransition) {
foreach($ntransition->getUsers() as $tuser) {
$notifier->toIndividual($user, $tuser->getUser(), $subject, $message, $params);
}
foreach($ntransition->getGroups() as $tuser) {
$notifier->toGroup($user, $tuser->getGroup(), $subject, $message, $params);
}
}
}
}
$expires = false;
@ -261,21 +282,8 @@ if ($_FILES['userfile']['error'] == 0) {
if($notifier) {
$notifyList = $document->getNotifyList();
$folder = $document->getFolder();
// Send notification to subscribers.
/*
$subject = "###SITENAME###: ".$document->getName()." - ".getMLText("expiry_changed_email");
$message = getMLText("expiry_changed_email")."\r\n";
$message .=
getMLText("document").": ".$document->getName()."\r\n".
getMLText("folder").": ".$folder->getFolderPathPlain()."\r\n".
getMLText("comment").": ".$document->getComment()."\r\n".
"URL: ###URL_PREFIX###out/out.ViewDocument.php?documentid=".$document->getID()."\r\n";
$notifier->toList($user, $document->_notifyList["users"], $subject, $message);
foreach ($document->_notifyList["groups"] as $grp) {
$notifier->toGroup($user, $grp, $subject, $message);
}
*/
// Send notification to subscribers.
$subject = "expiry_changed_email_subject";
$message = "expiry_changed_email_body";
$params = array();