401, 'title' => $GLOBALS["lang"]["unauthorized"], 'detail' => $GLOBALS["lang"]['error-permissiondenied']); http_response_code(401); echo json_encode($return); exit(); } /** * Send AJAX response back to the client together with the appropriate HTTP status code * * @param integer $code HTTP status code for this response * @param array $response Response data (@see other ajax_response_* functions for expected structure) * * @return void */ function ajax_send_response($code, array $response) { http_response_code($code); echo json_encode($response); exit(); } /** * Send AJAX text/html response back to the client together with the appropriate HTTP status code * * @param integer $code HTTP status code for this response * @param string $response Response data (text/html) * * @return void */ function ajax_send_text_response($code, $response) { http_response_code($code); echo $response; exit(); } /** * Builds the correct response expected for a success request where there is data to return (e.g getting search results) * * @param array $data Data to be returned back to the client * * @return array */ function ajax_response_ok(array $data) { return array( "status" => "success", "data" => $data); } /** * Builds the correct response expected for failures. * * When a call is rejected due to invalid data or call conditions, the response data key contains an object explaining * what went wrong, typically a hash of validation errors. * * @param array $data Provides details of why the request failed. If the reasons for failure correspond to POST values, * the response objects' keys SHOULD correspond to those POST values. If generic, use message key * instead (@see ajax_build_message() ). * * @return array */ function ajax_response_fail(array $data) { return array( "status" => "fail", "data" => $data); } /** * Builds the correct response expected for a success request where there is no data to return (e.g when deleting a record) * * @return array */ function ajax_response_ok_no_data() { return array( "status" => "success", "data" => null); } /** * Returns a standard AJAX response for unauthorised access with a 401 HTTP status code * * @return void */ function ajax_unauthorized() { global $lang; ajax_send_response(401, ajax_response_fail(ajax_build_message($lang['error-permissiondenied']))); } /** * Builds a message to be used in an AJAX response * * @param string $msg An end-user message explaining what happened (as a generic message for fails or part of errors) * * @return array Returns a message */ function ajax_build_message(string $msg) { $msg = trim($msg); if ($msg == "") { trigger_error("\$msg variable must not be empty."); } return array("message" => $msg); }