Commit 8fe4a5ca4a6522a549d5d31a839819a42d99d567
1 parent
68a8d905
Make KTDispatcherValidation a proper class, not a utility class. Each
Dispatcher object has a DispatcherValidation object instantiated for it. git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@3749 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing
1 changed file
with
39 additions
and
27 deletions
lib/validation/dispatchervalidation.inc.php
| 1 | <?php | 1 | <?php |
| 2 | 2 | ||
| 3 | - | ||
| 4 | class KTDispatcherValidation { | 3 | class KTDispatcherValidation { |
| 5 | - function &validateFolder (&$this, $iId, $aOptions = null) { | ||
| 6 | - return KTDispatcherValidation::validateEntity($this, 'Folder', $iId, $aOptions); | 4 | + function KTDispatcherValidation(&$oDispatcher) { |
| 5 | + $this->oDispatcher =& $oDispatcher; | ||
| 6 | + } | ||
| 7 | + | ||
| 8 | + function &validateFolder ($iId, $aOptions = null) { | ||
| 9 | + return $this->validateEntity('Folder', $iId, $aOptions); | ||
| 7 | } | 10 | } |
| 8 | 11 | ||
| 9 | - function &validatePermissionByName (&$this, $iId, $aOptions = null) { | ||
| 10 | - KTUtil::meldOptions($aOptions, array( | 12 | + function &validateDocument ($iId, $aOptions = null) { |
| 13 | + return $this->validateEntity('Document', $iId, $aOptions); | ||
| 14 | + } | ||
| 15 | + | ||
| 16 | + function &validatePermissionByName ($iId, $aOptions = null) { | ||
| 17 | + $aOptions = KTUtil::meldOptions($aOptions, array( | ||
| 11 | 'method' => 'getByName', | 18 | 'method' => 'getByName', |
| 12 | )); | 19 | )); |
| 13 | - return KTDispatcherValidation::validateEntity($this, 'KTPermission', $iId, $aOptions); | 20 | + return $this->validateEntity('KTPermission', $iId, $aOptions); |
| 14 | } | 21 | } |
| 15 | 22 | ||
| 16 | - function userHasPermissionOnItem(&$this, $oUser, $oPermission, $oItem, $aOptions) { | 23 | + function userHasPermissionOnItem($oUser, $oPermission, $oItem, $aOptions = null) { |
| 17 | require_once(KT_LIB_DIR . '/permissions/permissionutil.inc.php'); | 24 | require_once(KT_LIB_DIR . '/permissions/permissionutil.inc.php'); |
| 18 | if (KTPermissionUtil::userHasPermissionOnItem($oUser, $oPermission, $oItem)) { | 25 | if (KTPermissionUtil::userHasPermissionOnItem($oUser, $oPermission, $oItem)) { |
| 19 | return; | 26 | return; |
| 20 | } | 27 | } |
| 21 | - $this->errorPage(_("Insufficient permissions to perform action")); | 28 | + $this->oDispatcher->errorPage(_("Insufficient permissions to perform action")); |
| 22 | } | 29 | } |
| 23 | 30 | ||
| 24 | - function &validateEntity(&$this, $entity_name, $iId, $aOptions = null) { | 31 | + function &validateEntity($entity_name, $iId, $aOptions = null) { |
| 25 | $aOptions = (array)$aOptions; | 32 | $aOptions = (array)$aOptions; |
| 26 | 33 | ||
| 27 | $aFunc = array($entity_name, KTUtil::arrayGet($aOptions, 'method', 'get')); | 34 | $aFunc = array($entity_name, KTUtil::arrayGet($aOptions, 'method', 'get')); |
| 28 | $oEntity =& call_user_func($aFunc, $iId); | 35 | $oEntity =& call_user_func($aFunc, $iId); |
| 29 | if (PEAR::isError($oEntity) || ($oEntity === false)) { | 36 | if (PEAR::isError($oEntity) || ($oEntity === false)) { |
| 30 | - $this->errorPage(sprintf("Invalid identifier provided for: %s", $entity_name)); | 37 | + $this->oDispatcher->errorPage(sprintf("Invalid identifier provided for: %s", $entity_name)); |
| 31 | } | 38 | } |
| 32 | return $oEntity; | 39 | return $oEntity; |
| 33 | } | 40 | } |
| 34 | 41 | ||
| 35 | - function notError(&$this, &$res, $aOptions = null) { | 42 | + function notError(&$res, $aOptions = null) { |
| 36 | $aOptions = (array)$aOptions; | 43 | $aOptions = (array)$aOptions; |
| 37 | if (PEAR::isError($res)) { | 44 | if (PEAR::isError($res)) { |
| 38 | $aOptions = KTUTil::meldOptions($aOptions, array( | 45 | $aOptions = KTUTil::meldOptions($aOptions, array( |
| 39 | 'exception' => $res, | 46 | 'exception' => $res, |
| 40 | )); | 47 | )); |
| 41 | - KTDispatcherValidation::handleError($this, $aOptions); | 48 | + $this->handleError($aOptions); |
| 42 | } | 49 | } |
| 43 | } | 50 | } |
| 44 | 51 | ||
| 45 | - function notErrorFalse(&$this, &$res, $aOptions = null) { | 52 | + function notErrorFalse(&$res, $aOptions = null) { |
| 46 | $aOptions = (array)$aOptions; | 53 | $aOptions = (array)$aOptions; |
| 47 | if (PEAR::isError($res) || ($res === false)) { | 54 | if (PEAR::isError($res) || ($res === false)) { |
| 48 | $aOptions = KTUTil::meldOptions($aOptions, array( | 55 | $aOptions = KTUTil::meldOptions($aOptions, array( |
| 49 | 'exception' => $res, | 56 | 'exception' => $res, |
| 50 | )); | 57 | )); |
| 51 | - KTDispatcherValidation::handleError($this, $aOptions); | 58 | + $this->handleError($aOptions); |
| 52 | } | 59 | } |
| 53 | } | 60 | } |
| 54 | 61 | ||
| 55 | - function handleError($this, $aOptions = null) { | 62 | + function handleError($aOptions = null) { |
| 56 | $aOptions = (array)$aOptions; | 63 | $aOptions = (array)$aOptions; |
| 57 | $aRedirectTo = KTUtil::arrayGet($aOptions, 'redirect_to'); | 64 | $aRedirectTo = KTUtil::arrayGet($aOptions, 'redirect_to'); |
| 58 | $oException = KTUtil::arrayGet($aOptions, 'exception'); | 65 | $oException = KTUtil::arrayGet($aOptions, 'exception'); |
| @@ -66,33 +73,38 @@ class KTDispatcherValidation { | @@ -66,33 +73,38 @@ class KTDispatcherValidation { | ||
| 66 | } | 73 | } |
| 67 | if ($aRedirectTo) { | 74 | if ($aRedirectTo) { |
| 68 | $aRealRedirectTo = array($aRedirectTo[0], $sMessage, KTUtil::arrayGet($aRedirectTo, 1)); | 75 | $aRealRedirectTo = array($aRedirectTo[0], $sMessage, KTUtil::arrayGet($aRedirectTo, 1)); |
| 69 | - call_user_func_array(array($this, 'errorRedirectTo'), $aRealRedirectTo); | 76 | + call_user_func_array(array($this->oDispatcher, this, 'errorRedirectTo'), $aRealRedirectTo); |
| 70 | } | 77 | } |
| 71 | - $this->errorPage($sMessage); | 78 | + $this->oDispatcher->errorPage($sMessage); |
| 72 | } | 79 | } |
| 73 | 80 | ||
| 74 | - function &validateTemplate($this, $sTemplateName, $aOptions = null) { | 81 | + function &validateTemplate($sTemplateName, $aOptions = null) { |
| 75 | $oTemplating =& KTTemplating::getSingleton(); | 82 | $oTemplating =& KTTemplating::getSingleton(); |
| 76 | $oTemplate =& $oTemplating->loadTemplate($sTemplateName); | 83 | $oTemplate =& $oTemplating->loadTemplate($sTemplateName); |
| 77 | $aOptions['message'] = KTUtil::arrayGet($aOptions, 'message', 'Failed to locate template'); | 84 | $aOptions['message'] = KTUtil::arrayGet($aOptions, 'message', 'Failed to locate template'); |
| 78 | - KTDispatcherValidation::notError($this, $oTemplate, $aOptions); | 85 | + $this->notError($oTemplate, $aOptions); |
| 79 | return $oTemplate; | 86 | return $oTemplate; |
| 80 | } | 87 | } |
| 81 | 88 | ||
| 82 | - function &validateWorkflow($this, $iId, $aOptions = null) { | ||
| 83 | - return KTDispatcherValidation::validateEntity($this, 'KTWorkflow', $iId, $aOptions); | 89 | + function &validateWorkflow($iId, $aOptions = null) { |
| 90 | + return $this->validateEntity('KTWorkflow', $iId, $aOptions); | ||
| 91 | + } | ||
| 92 | + | ||
| 93 | + function &validateWorkflowState($iId, $aOptions = null) { | ||
| 94 | + return $this->validateEntity('KTWorkflowState', $iId, $aOptions); | ||
| 84 | } | 95 | } |
| 85 | 96 | ||
| 86 | - function &validateWorkflowState($this, $iId, $aOptions = null) { | ||
| 87 | - return KTDispatcherValidation::validateEntity($this, 'KTWorkflowState', $iId, $aOptions); | 97 | + function &validateWorkflowTransition($iId, $aOptions = null) { |
| 98 | + return $this->validateEntity('KTWorkflowTransition', $iId, $aOptions); | ||
| 88 | } | 99 | } |
| 89 | 100 | ||
| 90 | - function &validateWorkflowTransition($this, $iId, $aOptions = null) { | ||
| 91 | - return KTDispatcherValidation::validateEntity($this, 'KTWorkflowTransition', $iId, $aOptions); | 101 | + function &validatePermission($iId, $aOptions = null) { |
| 102 | + return $this->validateEntity('KTPermission', $iId, $aOptions); | ||
| 92 | } | 103 | } |
| 93 | 104 | ||
| 94 | - function &validatePermission($this, $iId, $aOptions = null) { | ||
| 95 | - return KTDispatcherValidation::validateEntity($this, 'KTPermission', $iId, $aOptions); | 105 | + function &validateLookup($iId, $aOptions = null) { |
| 106 | + require_once(KT_LIB_DIR . '/documentmanagement/MetaData.inc'); | ||
| 107 | + return $this->validateEntity('MetaData', $iId, $aOptions); | ||
| 96 | } | 108 | } |
| 97 | } | 109 | } |
| 98 | 110 |