Ejemplo n.º 1
0
 /**
  * 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);
 }
Ejemplo n.º 2
0
 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)));
         }
     }
 }
Ejemplo n.º 3
0
 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"));
 }