dispatchervalidation.inc.php.svn-base

来自「PHP 知识管理系统(基于树结构的知识管理系统), 英文原版的PHP源码。」· SVN-BASE 代码 · 共 463 行 · 第 1/2 页

SVN-BASE
463
字号
<?php/** * $Id$ * * KnowledgeTree Community Edition * Document Management Made Simple * Copyright (C) 2008 KnowledgeTree Inc. * Portions copyright The Jam Warehouse Software (Pty) Limited *  * This program is free software; you can redistribute it and/or modify it under * the terms of the GNU General Public License version 3 as published by the * Free Software Foundation. *  * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more * details. *  * You should have received a copy of the GNU General Public License * along with this program.  If not, see <http://www.gnu.org/licenses/>. *  * You can contact KnowledgeTree Inc., PO Box 7775 #87847, San Francisco,  * California 94120-7775, or email info@knowledgetree.com. *  * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU General Public License version 3. *  * In accordance with Section 7(b) of the GNU General Public License version 3, * these Appropriate Legal Notices must retain the display of the "Powered by * KnowledgeTree" logo and retain the original copyright notice. If the display of the  * logo is not reasonably feasible for technical reasons, the Appropriate Legal Notices * must display the words "Powered by KnowledgeTree" and retain the original  * copyright notice. * Contributor( s): ______________________________________ * */require_once(KT_LIB_DIR . '/validation/errorviewer.inc.php');class KTDispatcherValidation {    function KTDispatcherValidation(&$oDispatcher) {        $this->oDispatcher =& $oDispatcher;    }    function &validateFolder ($iId, $aOptions = null) {        return $this->validateEntity('Folder', $iId, $aOptions);    }    function &validateDocument ($iId, $aOptions = null) {        return $this->validateEntity('Document', $iId, $aOptions);    }    function &validateDocumentType ($iId, $aOptions = null) {        return $this->validateEntity('DocumentType', $iId, $aOptions);    }    function &validatePermissionByName ($iId, $aOptions = null) {        $aOptions = KTUtil::meldOptions($aOptions, array(            'method' => 'getByName',        ));        return $this->validateEntity('KTPermission', $iId, $aOptions);    }    function userHasPermissionOnItem($oUser, $oPermission, $oItem, $aOptions = null) {        require_once(KT_LIB_DIR . '/permissions/permissionutil.inc.php');        if (KTPermissionUtil::userHasPermissionOnItem($oUser, $oPermission, $oItem)) {            return;        }        $this->oDispatcher->errorPage(_kt("Insufficient permissions to perform action"));    }    function &validateEntity($entity_name, $iId, $aOptions = null) {        $aOptions = (array)$aOptions;        $aFunc = array($entity_name, KTUtil::arrayGet($aOptions, 'method', 'get'));        $oEntity =& call_user_func($aFunc, $iId);        if (PEAR::isError($oEntity) || ($oEntity === false)) {            $aOptions['message'] = KTUtil::arrayGet($aOptions, 'message', sprintf(_kt("Invalid identifier provided for: %s"), $entity_name));            $this->handleError($aOptions);        }        return $oEntity;    }    function notError(&$res, $aOptions = null) {        $aOptions = (array)$aOptions;        if (PEAR::isError($res)) {            if (!KTUtil::arrayGet($aOptions, 'no_exception')) {                $aOptions = KTUTil::meldOptions($aOptions, array(                    'exception' => $res,                ));            }            $this->handleError($aOptions);        }    }    function notErrorFalse(&$res, $aOptions = null) {        $aOptions = (array)$aOptions;        if (PEAR::isError($res) || ($res === false)) {            $aOptions = KTUTil::meldOptions($aOptions, array(                'exception' => $res,            ));            $this->handleError($aOptions);        }    }    function &notEmpty(&$res, $aOptions = null) {        $aOptions = (array)$aOptions;        if (empty($res) || PEAR::isError($res)) {            $this->handleError($aOptions);        }        return $res;    }    function handleError($aOptions = null) {        $aOptions = (array)$aOptions;        $aRedirectTo = KTUtil::arrayGet($aOptions, 'redirect_to');        $oException = KTUtil::arrayGet($aOptions, 'exception');        $sMessage = KTUtil::arrayGet($aOptions, 'message');        $sDefaultMessage = KTUtil::arrayGet($aOptions, 'defaultmessage');        if (empty($sMessage)) {            if ($oException) {                $oEVRegistry = KTErrorViewerRegistry::getSingleton();                $oViewer = $oEVRegistry->getViewer($oException);                $sMessage = $oViewer->view();            } elseif ($sDefaultMessage) {                $sMessage = $sDefaultMessage;            } else {                $sMessage = _kt("An error occurred, and no error message was given");            }        } else {            if ($oException) {                $sMessage .= ': ' . $oException->getMessage();            }        }        if ($aRedirectTo) {            $aRedirectParams = KTUtil::arrayGet($aRedirectTo, 1);            $aRealRedirectTo = array($aRedirectTo[0], $sMessage, $aRedirectParams);            $aRealRedirectTo[] = $oException;            call_user_func_array(array($this->oDispatcher, 'errorRedirectTo'), $aRealRedirectTo);        }        $this->oDispatcher->errorPage($sMessage, $oException);    }    function &validateTemplate($sTemplateName, $aOptions = null) {        $oTemplating =& KTTemplating::getSingleton();        $oTemplate =& $oTemplating->loadTemplate($sTemplateName);        $aOptions['message'] = KTUtil::arrayGet($aOptions, 'message', _kt('Failed to locate template'));        $this->notError($oTemplate, $aOptions);        return $oTemplate;    }    function &validateWorkflow($iId, $aOptions = null) {        return $this->validateEntity('KTWorkflow', $iId, $aOptions);    }    function &validateWorkflowState($iId, $aOptions = null) {        return $this->validateEntity('KTWorkflowState', $iId, $aOptions);    }    function &validateWorkflowTransition($iId, $aOptions = null) {        return $this->validateEntity('KTWorkflowTransition', $iId, $aOptions);    }    function &validatePermission($iId, $aOptions = null) {        return $this->validateEntity('KTPermission', $iId, $aOptions);    }    function &validateLookup($iId, $aOptions = null) {        require_once(KT_LIB_DIR .  '/documentmanagement/MetaData.inc');        return $this->validateEntity('MetaData', $iId, $aOptions);    }    function &validateFieldset($iId, $aOptions = null) {        require_once(KT_LIB_DIR .  '/metadata/fieldset.inc.php');        return $this->validateEntity('KTFieldset', $iId, $aOptions);    }    function &validateField($iId, $aOptions = null) {        require_once(KT_LIB_DIR .  '/documentmanagement/DocumentField.inc');        return $this->validateEntity('DocumentField', $iId, $aOptions);    }    function &validateBehaviour($iId, $aOptions = null) {        require_once(KT_LIB_DIR .  '/metadata/fieldbehaviour.inc.php');        return $this->validateEntity('KTFieldBehaviour', $iId, $aOptions);    }    function &validateRole($iId, $aOptions = null) {        require_once(KT_LIB_DIR .  '/roles/Role.inc');        return $this->validateEntity('Role', $iId, $aOptions);    }    function &validateGroup($iId, $aOptions = null) {        require_once(KT_LIB_DIR .  '/groups/Group.inc');        return $this->validateEntity('Group', $iId, $aOptions);    }    function &validateUser($iId, $aOptions = null) {        require_once(KT_LIB_DIR .  '/users/User.inc');        return $this->validateEntity('User', $iId, $aOptions);    }    function &validateCondition($iId, $aOptions = null) {        require_once(KT_LIB_DIR .  '/search/savedsearch.inc.php');        $oSearch = $this->validateEntity('KTSavedSearch', $iId, $aOptions);        if ($oSearch->getIsCondition()) {            return $oSearch;        }        $aOptions = KTUTil::meldOptions($aOptions, array(            'message' => _kt("Condition is a saved search, but not a condition"),        ));        $this->handleError($aOptions);    }    function validateString($sString, $aOptions = null) {        $sString = trim($sString);        if (empty($sString)) {            $aOptions['message'] = KTUtil::arrayGet($aOptions,                    'message', _kt("An empty string was given"));            $this->handleError($aOptions);        }	$iMaxlen = (int)KTUtil::arrayGet($aOptions, 'max_str_len', false);	if($iMaxlen !== false && $iMaxlen !== 0 && strlen($sString) > $iMaxlen) {	    $aOptions['message'] = KTUtil::arrayGet($aOptions,						    'max_str_len_message',						    _kt("The string is too long: the maximum length in characters is ") . $iMaxlen);	    $this->handleError($aOptions);	}        return $sString;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?