From dcf92b7acf69c3770a76705d0cb4e1f6a05e1c88 Mon Sep 17 00:00:00 2001 From: nbm Date: Tue, 25 Oct 2005 12:35:06 +0000 Subject: [PATCH] Allow for the setting and getting of the groups/users/roles that get informed when a particular workflow state is entered. --- lib/workflow/workflowutil.inc.php | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+), 0 deletions(-) diff --git a/lib/workflow/workflowutil.inc.php b/lib/workflow/workflowutil.inc.php index c0337c1..a84acd4 100644 --- a/lib/workflow/workflowutil.inc.php +++ b/lib/workflow/workflowutil.inc.php @@ -4,6 +4,7 @@ require_once(KT_LIB_DIR . '/workflow/workflow.inc.php'); require_once(KT_LIB_DIR . '/workflow/workflowstate.inc.php'); require_once(KT_LIB_DIR . '/workflow/workflowtransition.inc.php'); +require_once(KT_LIB_DIR . '/permissions/permissionutil.inc.php'); require_once(KT_LIB_DIR . '/groups/GroupUtil.php'); class KTWorkflowUtil { @@ -242,5 +243,35 @@ class KTWorkflowUtil { ); return DBUtil::runQuery($aQuery); } + + // {{{ setInformedForState + /** + * Sets the users/groups/roles informed when a state is arrived at. + */ + function setInformedForState(&$oState, $aInformed) { + $oDescriptor =& KTPermissionUtil::getOrCreateDescriptor($aInformed); + if (PEAR::isError($oDescriptor)) { + return $oDescriptor; + } + $iOldDescriptorId = $oState->getInformDescriptorId(); + $oState->setInformDescriptorId($oDescriptor->getId()); + $res = $oState->update(); + if (PEAR::isError($res)) { + $oState->setInformDescriptorId($iOldDescriptorId); + return $res; + } + return $res; + } + // }}} + + // {{{ getInformedForState + function getInformedForState($oState) { + $iDescriptorId = $oState->getInformDescriptorId(); + if (empty($iDescriptorId)) { + return array(); + } + return KTPermissionUtil::getAllowedForDescriptor($iDescriptorId); + } + // }}} } -- libgit2 0.21.4