public static function handler($requestData) { $requestStartTime = microtime(true); /* Checking the condition for this action is allowed to user (JS INJECTION ) */ $userData = DB::getRow("?:users", "userID, accessLevel, permissions", "userID = '" . $GLOBALS['userID'] . "'"); $Restrict = FALSE; if ($userData['accessLevel'] != 'admin') { if (function_exists('userRestrictChecking')) { $Restrict = userRestrictChecking($userData, $requestData); } } //$GLOBALS['printAll'] = true; $clearPrint = empty($GLOBALS['printAll']) ? true : false; if ($clearPrint) { ob_start(); } $actionResult = $data = array(); $action = $requestData['action']; $args = $requestData['args']; $siteIDs = $requestData['args']['siteIDs']; $params = $requestData['args']['params']; $extras = $requestData['args']['extras']; $requiredData = $requestData['requiredData']; $actionID = uniqid('', true); Reg::set('currentRequest.actionID', $actionID); if (!$Restrict) { //Checking restriction here if (manageClients::methodExists($action)) { manageCookies::cookieUnset('slowDownAjaxCallFrom'); if (!empty($siteIDs)) { if (function_exists('multiUserAccess')) { multiUserAccess($siteIDs); } } manageClients::execute($action, array('siteIDs' => $siteIDs, 'params' => $params, 'extras' => $extras)); if (Reg::get('currentRequest.exitOnComplete') === true) { if (Reg::get('settings.executeUsingBrowser') != 1) { //to fix update notification going "everything up to date" for fsock users executeJobs(); } $exitOnCompleteT = microtime(true); exitOnComplete(); $exitOnCompleteTT = microtime(true) - $exitOnCompleteT; } if (Reg::get('currentRequest.sendAfterAllLoad') === true) { sendAfterAllLoad($requiredData); } $actionResult = self::getActionStatus($actionID, $action); } if (Reg::get('settings.executeUsingBrowser') != 1 && !defined('CRON_MODE') && !defined('IS_EXECUTE_FILE')) { // && !defined('CRON_MODE') && !defined('IS_EXECUTE_FILE') //panelRequestManager::handler() has been called in many places in app. inorder to avoid executeJobs() executeJobs(); } } $data = self::requiredData($requiredData); $finalResponse = array(); $finalResponse = array('actionResult' => $actionResult, 'data' => $data); if (empty($requestData['noGeneralCheck'])) { self::generalCheck($finalResponse); } $finalResponse['sendNextAjaxCallAfter'] = self::getSendNextAjaxCallAfter(); $finalResponse['showBrowserCloseWarning'] = showBrowserCloseWarning(); if ($clearPrint) { $printedText = ob_get_clean(); } $finalResponse['debug'] = array('exitOnCompleteTimeTaken' => $exitOnCompleteTT, 'currentRequest.exitOnComplete' => var_export(Reg::get('currentRequest.exitOnComplete'), true), 'totalRequestTimeTaken' => microtime(true) - $requestStartTime); $finalResponse = self::changeToUTF8($finalResponse); return json_encode($finalResponse); }