From 069bcb38959c4306362d393a1a11ddad0341414c Mon Sep 17 00:00:00 2001
From: Alberto Defendi <1369-ahl-berto@users.noreply.gitlab.inf.unibz.it>
Date: Thu, 15 Apr 2021 10:13:36 +0200
Subject: [PATCH] Provisorially add token and role to sessionStorage when calls
 axios

It should be re-implemented using react context
---
 src/components/AuthUser/AuthUser.tsx             | 2 ++
 src/components/api/PrivateRoute/PrivateRoute.tsx | 5 +++--
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/components/AuthUser/AuthUser.tsx b/src/components/AuthUser/AuthUser.tsx
index 144b546..317a5f7 100644
--- a/src/components/AuthUser/AuthUser.tsx
+++ b/src/components/AuthUser/AuthUser.tsx
@@ -16,6 +16,8 @@ export const AuthUser: FC = () => {
       .get('api/web/csrf')
       .then((response) => {
         axios.defaults.headers.common['X-CSRFTOKEN'] = response.data.token;
+        sessionStorage.setItem('X-CSRFTOKEN', response.data.token);
+        sessionStorage.setItem('ROLE', 'admin');
       })
       .catch((error) => error);
   }, []);
diff --git a/src/components/api/PrivateRoute/PrivateRoute.tsx b/src/components/api/PrivateRoute/PrivateRoute.tsx
index 7c32561..1f74eae 100644
--- a/src/components/api/PrivateRoute/PrivateRoute.tsx
+++ b/src/components/api/PrivateRoute/PrivateRoute.tsx
@@ -18,8 +18,9 @@ export const PrivateRoute = ({
   path,
   requiredRoles,
 }: Props): JSX.Element => {
-  const isAuthed = true;
-  const userHasRequiredRole = requiredRoles.includes('admin');
+  const isAuthed = !!sessionStorage.getItem('X-CSRFTOKEN');
+  const currentRole = String(sessionStorage.getItem('ROLE'));
+  const userHasRequiredRole = requiredRoles.includes(currentRole);
   const message = userHasRequiredRole
     ? 'Please log in to view this page'
     : 'Your role is not allowed';
-- 
GitLab