From 762375cf2256f5e02c9abbc3a97db9592ae47120 Mon Sep 17 00:00:00 2001
From: Sebastian Castro <sebastian.castro@protonmail.com>
Date: Tue, 1 Oct 2019 15:04:44 +0200
Subject: [PATCH] Fixs admin role for super admins in gogocartoJs conf

---
 src/Biopen/CoreBundle/Resources/views/header.html.twig        | 3 +--
 src/Biopen/GeoDirectoryBundle/Services/GoGoCartoJsService.php | 4 ++--
 2 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/src/Biopen/CoreBundle/Resources/views/header.html.twig b/src/Biopen/CoreBundle/Resources/views/header.html.twig
index d8b5c9d55..71652d70c 100755
--- a/src/Biopen/CoreBundle/Resources/views/header.html.twig
+++ b/src/Biopen/CoreBundle/Resources/views/header.html.twig
@@ -192,8 +192,7 @@ function handleLogin(bool, rolesObject, mail)
   // carto is the GoGoCartoJs instance, defined in GeoDirectory/directoy.html.twig
   if (typeof carto !== 'undefined')
   {
-    // in GoGoCartoJs there are 3 roles : anonymous (0), user (1), admin (2)
-    if ($.inArray('ROLE_ADMIN', roles) > -1) carto.setUserRole('admin');
+    if ($.inArray('ROLE_ADMIN', roles) > -1 || $.inArray('ROLE_SUPER_ADMIN', roles) > -1) carto.setUserRole('admin');
     else if ($.inArray('ROLE_USER', roles) > -1) carto.setUserRole('user');
     else carto.setUserRole('anonymous');
 
diff --git a/src/Biopen/GeoDirectoryBundle/Services/GoGoCartoJsService.php b/src/Biopen/GeoDirectoryBundle/Services/GoGoCartoJsService.php
index ce0ce5d1c..f221ad7fc 100644
--- a/src/Biopen/GeoDirectoryBundle/Services/GoGoCartoJsService.php
+++ b/src/Biopen/GeoDirectoryBundle/Services/GoGoCartoJsService.php
@@ -31,7 +31,7 @@ class GoGoCartoJsService
     $user = $this->securityContext->isGranted('IS_AUTHENTICATED_REMEMBERED') ? $this->securityContext->getToken()->getUser() : null;
 
     $roles = $user ? $user->getRoles() : [];
-    $userGogocartoRole = in_array('ROLE_ADMIN', $roles) ? 'admin' : (in_array('ROLE_USER', $roles) ? 'user' : 'anonymous');
+    $userGogocartoRole = $user && $user->isAdmin() ? 'admin' : (in_array('ROLE_USER', $roles) ? 'user' : 'anonymous');
     $userGogocartoRole = [$userGogocartoRole];
     $userEmail = $user ? $user->getEmail() : $this->session->get('userEmail');
 
@@ -51,7 +51,7 @@ class GoGoCartoJsService
       "security" =>
       [
           "userRoles" => $userGogocartoRole,
-          "userEmail" => $userEmail ,
+          "userEmail" => $userEmail,
           "loginAction" => '$("#popup-login").openModal();'
       ],
       "language" => "fr",
-- 
GitLab