/** * Returns a KTAPI_Permission based on id. * * @author KnowledgeTree Team * @access public * @static * @param int $id * @return KTAPI_Permission Returns null if the namespace could not be resolved. */ public static function getById($id) { $permission = KTPermission::get($id); if (PEAR::isError($permission)) { return $permission; } return new KTAPI_Permission($permission); }
function generateWorkflowTriggers() { require_once KT_LIB_DIR . '/workflow/workflowutil.inc.php'; // get all the transitions, and add a trigger to the util with the appropriate settings. $KTWFTriggerReg =& KTWorkflowTriggerRegistry::getSingleton(); $aTransitions = KTWorkflowTransition::getList(); foreach ($aTransitions as $oTransition) { // guard perm $iGuardPerm = $oTransition->getGuardPermissionId(); if (!is_null($iGuardPerm)) { $sNamespace = 'ktcore.workflowtriggers.permissionguard'; $oPerm = KTPermission::get($iGuardPerm); $oTrigger = $KTWFTriggerReg->getWorkflowTrigger($sNamespace); $oTriggerConfig = KTWorkflowTriggerInstance::createFromArray(array('transitionid' => KTUtil::getId($oTransition), 'namespace' => $sNamespace, 'config' => array('perms' => array($oPerm->getName())))); } // guard group $iGuardGroup = $oTransition->getGuardGroupId(); if (!is_null($iGuardGroup)) { $sNamespace = 'ktcore.workflowtriggers.groupguard'; $oTrigger = $KTWFTriggerReg->getWorkflowTrigger($sNamespace); $oTriggerConfig = KTWorkflowTriggerInstance::createFromArray(array('transitionid' => KTUtil::getId($oTransition), 'namespace' => $sNamespace, 'config' => array('group_id' => $iGuardGroup))); } // guard role $iGuardRole = $oTransition->getGuardRoleId(); if (!is_null($iGuardRole)) { $sNamespace = 'ktcore.workflowtriggers.roleguard'; $oTrigger = $KTWFTriggerReg->getWorkflowTrigger($sNamespace); $oTriggerConfig = KTWorkflowTriggerInstance::createFromArray(array('transitionid' => KTUtil::getId($oTransition), 'namespace' => $sNamespace, 'config' => array('role_id' => $iGuardRole))); } // guard condition $iGuardCondition = $oTransition->getGuardConditionId(); if (!is_null($iGuardCondition)) { $sNamespace = 'ktcore.workflowtriggers.conditionguard'; $oTrigger = $KTWFTriggerReg->getWorkflowTrigger($sNamespace); $oTriggerConfig = KTWorkflowTriggerInstance::createFromArray(array('transitionid' => KTUtil::getId($oTransition), 'namespace' => $sNamespace, 'config' => array('condition_id' => $iGuardCondition))); } } }
function do_deletePermission() { $id = KTUtil::arrayGet($_REQUEST, 'id'); if (empty($id)) { return $this->errorRedirectToMain(_kt("Both names not given")); } $oPerm = KTPermission::get($id); if (PEAR::isError($oPerm)) { return $this->errorRedirectToMain(_kt("Error finding permission")); } if ($oPerm->getBuiltIn() === true) { return $this->errorRedirectToMain(_kt("Can't delete built-in permission")); } $res = $oPerm->delete(); if (PEAR::isError($res)) { return $this->errorRedirectToMain(_kt("Error deleting permission")); } return $this->successRedirectToMain(_kt("Permission deleted")); }