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