本文整理汇总了PHP中AJXP_Controller::actionNeedsRight方法的典型用法代码示例。如果您正苦于以下问题:PHP AJXP_Controller::actionNeedsRight方法的具体用法?PHP AJXP_Controller::actionNeedsRight怎么用?PHP AJXP_Controller::actionNeedsRight使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AJXP_Controller
的用法示例。
在下文中一共展示了AJXP_Controller::actionNeedsRight方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: findActionAndApply
public static function findActionAndApply($actionName, $httpVars, $fileVars)
{
if ($actionName == "cross_copy") {
$pService = AJXP_PluginsService::getInstance();
$actives = $pService->getActivePlugins();
$accessPlug = $pService->getPluginsByType("access");
if (count($accessPlug)) {
foreach ($accessPlug as $key => $objbect) {
if ($actives[$objbect->getId()] === true) {
call_user_func(array($pService->getPluginById($objbect->getId()), "crossRepositoryCopy"), $httpVars);
break;
}
}
}
return;
}
$xPath = self::initXPath();
$actions = $xPath->query("actions/action[@name='{$actionName}']");
if (!$actions->length) {
return false;
}
$action = $actions->item(0);
//Check Rights
$mess = ConfService::getMessages();
if (AuthService::usersEnabled()) {
$loggedUser = AuthService::getLoggedUser();
if (AJXP_Controller::actionNeedsRight($action, $xPath, "adminOnly") && ($loggedUser == null || !$loggedUser->isAdmin())) {
AJXP_XMLWriter::header();
AJXP_XMLWriter::sendMessage(null, $mess[207]);
AJXP_XMLWriter::requireAuth();
AJXP_XMLWriter::close();
exit(1);
}
if (AJXP_Controller::actionNeedsRight($action, $xPath, "read") && ($loggedUser == null || !$loggedUser->canRead(ConfService::getCurrentRootDirIndex() . ""))) {
AJXP_XMLWriter::header();
AJXP_XMLWriter::sendMessage(null, $mess[208]);
AJXP_XMLWriter::requireAuth();
AJXP_XMLWriter::close();
exit(1);
}
if (AJXP_Controller::actionNeedsRight($action, $xPath, "write") && ($loggedUser == null || !$loggedUser->canWrite(ConfService::getCurrentRootDirIndex() . ""))) {
AJXP_XMLWriter::header();
AJXP_XMLWriter::sendMessage(null, $mess[207]);
AJXP_XMLWriter::requireAuth();
AJXP_XMLWriter::close();
exit(1);
}
}
$preCalls = self::getCallbackNode($xPath, $action, 'pre_processing/serverCallback', $actionName, $httpVars, $fileVars, true);
$postCalls = self::getCallbackNode($xPath, $action, 'post_processing/serverCallback[not(@capture="true")]', $actionName, $httpVars, $fileVars, true);
$captureCalls = self::getCallbackNode($xPath, $action, 'post_processing/serverCallback[@capture="true"]', $actionName, $httpVars, $fileVars, true);
$mainCall = self::getCallbackNode($xPath, $action, "processing/serverCallback", $actionName, $httpVars, $fileVars, false);
if ($captureCalls !== false) {
ob_start();
$params = array("pre_processor_results" => array(), "post_processor_results" => array());
}
if ($preCalls !== false) {
foreach ($preCalls as $preCall) {
// A Preprocessing callback can modify its input arguments (passed by ref)
$preResult = self::applyCallback($xPath, $preCall, $actionName, $httpVars, $fileVars);
if (isset($params)) {
$params["pre_processor_results"][$preCall->getAttribute("pluginId")] = $preResult;
}
}
}
if ($mainCall) {
$result = self::applyCallback($xPath, $mainCall, $actionName, $httpVars, $fileVars);
if (isset($params)) {
$params["processor_result"] = $result;
}
}
if ($postCalls !== false) {
foreach ($postCalls as $postCall) {
// A Preprocessing callback can modify its input arguments (passed by ref)
$postResult = self::applyCallback($xPath, $postCall, $actionName, $httpVars, $fileVars);
if (isset($params)) {
$params["post_processor_results"][$postCall->getAttribute("pluginId")] = $postResult;
}
}
}
if ($captureCalls !== false) {
$params["ob_output"] = ob_get_contents();
ob_end_clean();
foreach ($captureCalls as $captureCall) {
self::applyCallback($xPath, $captureCall, $actionName, $httpVars, $params);
}
} else {
if (isset($result)) {
return $result;
}
}
}
示例2: findActionAndApply
/**
* Main method for querying the XML registry, find an action and all its associated processors,
* and apply all the callbacks.
* @static
* @param String $actionName
* @param array $httpVars
* @param array $fileVars
* @param DOMNode $action
* @return mixed
*/
public static function findActionAndApply($actionName, $httpVars, $fileVars, &$action = null)
{
$actionName = AJXP_Utils::sanitize($actionName, AJXP_SANITIZE_EMAILCHARS);
if ($actionName == "cross_copy") {
$pService = AJXP_PluginsService::getInstance();
$actives = $pService->getActivePlugins();
$accessPlug = $pService->getPluginsByType("access");
if (count($accessPlug)) {
foreach ($accessPlug as $key => $objbect) {
if ($actives[$objbect->getId()] === true) {
call_user_func(array($pService->getPluginById($objbect->getId()), "crossRepositoryCopy"), $httpVars);
break;
}
}
}
self::$lastActionNeedsAuth = true;
return null;
}
$xPath = self::initXPath();
if ($action == null) {
$actions = $xPath->query("actions/action[@name='{$actionName}']");
if (!$actions->length) {
self::$lastActionNeedsAuth = true;
return false;
}
$action = $actions->item(0);
}
//Check Rights
if (AuthService::usersEnabled()) {
$loggedUser = AuthService::getLoggedUser();
if (AJXP_Controller::actionNeedsRight($action, $xPath, "adminOnly") && ($loggedUser == null || !$loggedUser->isAdmin())) {
$mess = ConfService::getMessages();
AJXP_XMLWriter::header();
AJXP_XMLWriter::sendMessage(null, $mess[207]);
AJXP_XMLWriter::requireAuth();
AJXP_XMLWriter::close();
exit(1);
}
if (AJXP_Controller::actionNeedsRight($action, $xPath, "read") && ($loggedUser == null || !$loggedUser->canRead(ConfService::getCurrentRepositoryId() . ""))) {
AJXP_XMLWriter::header();
if ($actionName == "ls" & $loggedUser != null && $loggedUser->canWrite(ConfService::getCurrentRepositoryId() . "")) {
// Special case of "write only" right : return empty listing, no auth error.
AJXP_XMLWriter::close();
exit(1);
}
$mess = ConfService::getMessages();
AJXP_XMLWriter::sendMessage(null, $mess[208]);
AJXP_XMLWriter::requireAuth();
AJXP_XMLWriter::close();
exit(1);
}
if (AJXP_Controller::actionNeedsRight($action, $xPath, "write") && ($loggedUser == null || !$loggedUser->canWrite(ConfService::getCurrentRepositoryId() . ""))) {
$mess = ConfService::getMessages();
AJXP_XMLWriter::header();
AJXP_XMLWriter::sendMessage(null, $mess[207]);
AJXP_XMLWriter::requireAuth();
AJXP_XMLWriter::close();
exit(1);
}
}
$preCalls = self::getCallbackNode($xPath, $action, 'pre_processing/serverCallback', $actionName, $httpVars, $fileVars, true);
$postCalls = self::getCallbackNode($xPath, $action, 'post_processing/serverCallback[not(@capture="true")]', $actionName, $httpVars, $fileVars, true);
$captureCalls = self::getCallbackNode($xPath, $action, 'post_processing/serverCallback[@capture="true"]', $actionName, $httpVars, $fileVars, true);
$mainCall = self::getCallbackNode($xPath, $action, "processing/serverCallback", $actionName, $httpVars, $fileVars, false);
if ($mainCall != null) {
self::checkParams($httpVars, $mainCall, $xPath);
}
if ($captureCalls !== false) {
// Make sure the ShutdownScheduler has its own OB started BEFORE, as it will presumabily be
// executed AFTER the end of this one.
AJXP_ShutdownScheduler::getInstance();
ob_start();
$params = array("pre_processor_results" => array(), "post_processor_results" => array());
}
if ($preCalls !== false) {
foreach ($preCalls as $preCall) {
// A Preprocessing callback can modify its input arguments (passed by ref)
$preResult = self::applyCallback($preCall, $actionName, $httpVars, $fileVars);
if (isset($params)) {
$params["pre_processor_results"][$preCall->getAttribute("pluginId")] = $preResult;
}
}
}
if ($mainCall) {
$result = self::applyCallback($mainCall, $actionName, $httpVars, $fileVars);
if (isset($params)) {
$params["processor_result"] = $result;
}
}
if ($postCalls !== false) {
//.........这里部分代码省略.........