authenticatePortalUser($request->get('username'), $request->get('password')); if (!$ok) { throw new Exception("Login failed", 1412); } } } static function process(CustomerPortal_API_Request $request) { $operation = $request->getOperation(); $response = false; if (!preg_match("/[0-9a-zA-z]*/", $operation, $match)) { throw new Exception("Invalid entry", 1412); } if ($operation == $match[0]) { $operationFile = sprintf('/apis/%s.php', $operation); $operationClass = sprintf("CustomerPortal_%s", $operation); include_once dirname(__FILE__).$operationFile; $operationController = new $operationClass; try { self::authenticate($operationController, $request); //setting active user language as Portal user language $current_user = $operationController->getActiveUser(); $portal_language = $request->getLanguage(); $current_user->column_fields["language"] = $portal_language; $current_user->language = $portal_language; $response = $operationController->process($request); } catch (Exception $e) { $response = new CustomerPortal_API_Response(); $response->setError($e->getCode(), $e->getMessage()); } } else { $response = new CustomerPortal_API_Response(); $response->setError(1404, 'Operation not found: '.$operation); } if ($response !== false) { echo $response->emitJSON(); } } } /** Take care of stripping the slashes */ function stripslashes_recursive($value) { $value = is_array($value) ? array_map('stripslashes_recursive', $value) : stripslashes($value); return $value; } $clientRequestValues = $_POST; if (get_magic_quotes_gpc()) { $clientRequestValues = stripslashes_recursive($clientRequestValues); } $clientRequestValuesRaw = array(); CustomerPortal_API_EntryPoint::process(new CustomerPortal_API_Request($clientRequestValues, $clientRequestValuesRaw));