From 833dcac70a5e3a1ee5dfff8d8a94d26c4bd69be4 Mon Sep 17 00:00:00 2001 From: Sonia Zorba <sonia.zorba@inaf.it> Date: Mon, 12 Oct 2020 13:44:24 +0200 Subject: [PATCH] Added JSON error response; removed beta version logo --- config-example.yaml | 2 +- include/header.php | 3 --- index.php | 23 +++++++++++++++++------ 3 files changed, 18 insertions(+), 10 deletions(-) diff --git a/config-example.yaml b/config-example.yaml index a850423..dbb218e 100644 --- a/config-example.yaml +++ b/config-example.yaml @@ -64,7 +64,7 @@ clients: id: aao-dev secret: 2a97516c354b68848cdbd8f54a226a0a55b21ed138e207ad6c5cbb9c00aa5aea redirect: http://localhost:8081/aao/login - scope: "openid read:userspace write:userspace read:fileserver write:fileserver read:gms" + scope: "openid read:userspace write:userspace read:fileserver write:fileserver read:gms read:rap" home: http://localhost:8081/aao icon: asiago.gif showInHome: true diff --git a/include/header.php b/include/header.php index d653202..d7ad4dc 100644 --- a/include/header.php +++ b/include/header.php @@ -18,9 +18,6 @@ <div class="page-title-wrapper"> <h1 class="text-center"> <a href="<?php echo $contextRoot; ?>/">Remote Authentication Portal</a> - <span class="circle-wrapper"> - <div class="circle">beta<br/>version!</div> - </span> </h1> </div> </header> diff --git a/index.php b/index.php index 4517350..aebafe4 100644 --- a/index.php +++ b/index.php @@ -52,12 +52,23 @@ Flight::map('error', function($ex) { } } - global $locator; - Flight::render('error.php', array('title' => 'Error', - 'version' => $locator->getVersion(), 'error' => $message, - 'contactEmail' => isset($locator->config->contactEmail) ? $locator->config->contactEmail : null, - 'contactLabel' => isset($locator->config->contactLabel) ? $locator->config->contactLabel : null, - 'contextRoot' => $locator->config->contextRoot)); + $headers = apache_request_headers(); + $useJson = false; + if (array_key_exists('Accept', $headers)) { + $accept = $headers['Accept']; + $useJson = ($accept === 'application/json' || $accept === 'text/json'); + } + + if ($useJson) { + echo json_encode(["error" => $message]); + } else { + global $locator; + Flight::render('error.php', array('title' => 'Error', + 'version' => $locator->getVersion(), 'error' => $message, + 'contactEmail' => isset($locator->config->contactEmail) ? $locator->config->contactEmail : null, + 'contactLabel' => isset($locator->config->contactLabel) ? $locator->config->contactLabel : null, + 'contextRoot' => $locator->config->contextRoot)); + } }); // Starting Flight framework -- GitLab