From 1344048d43e8b5e0f5dc79140fe202bd8a205f1c Mon Sep 17 00:00:00 2001
From: Alberto Defendi <1369-ahl-berto@users.noreply.gitlab.inf.unibz.it>
Date: Sun, 16 May 2021 15:34:22 +0200
Subject: [PATCH] Replace localstorage with data from AuthContext.

---
 src/api/PrivateRoute/PrivateRoute.tsx | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/api/PrivateRoute/PrivateRoute.tsx b/src/api/PrivateRoute/PrivateRoute.tsx
index 95065f0..de89491 100644
--- a/src/api/PrivateRoute/PrivateRoute.tsx
+++ b/src/api/PrivateRoute/PrivateRoute.tsx
@@ -1,7 +1,8 @@
-import React, { useState, useEffect } from 'react';
+import React, { useState, useEffect, useContext } from 'react';
 import axios from 'axios';
 import { Route, Redirect, RouteProps } from 'react-router-dom';
 import { NonAuthRoutes } from 'api/routes';
+import { AuthContext } from 'components/AuthUser/AuthContext';
 
 /**
  * A wrapper for <Route> that redirects to the login screen if you're not yet authenticated.
@@ -21,6 +22,7 @@ export const PrivateRoute = ({
 }: Props): JSX.Element => {
   const [auth, setAuth] = useState<boolean>(false);
   const [loading, setLoading] = useState<boolean>(false);
+  const { role } = useContext(AuthContext);
 
   useEffect(() => {
     const fetch = async (): Promise<unknown> => {
@@ -32,8 +34,7 @@ export const PrivateRoute = ({
     fetch();
   }, []);
 
-  const currentRole = String(sessionStorage.getItem('ROLE'));
-  const userHasRequiredRole = requiredRoles.includes(currentRole);
+  const userHasRequiredRole = requiredRoles.includes(role);
   const message = userHasRequiredRole
     ? 'Please log in to view this page'
     : 'Your role is not allowed';
-- 
GitLab