From de68ec89d422833a969aea90dbd9213ec14a6196 Mon Sep 17 00:00:00 2001
From: Alberto Defendi <1369-ahl-berto@users.noreply.gitlab.inf.unibz.it>
Date: Sun, 16 May 2021 16:28:18 +0200
Subject: [PATCH] Remove setLoading and insert visitor for stronger check.

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

diff --git a/src/api/PrivateRoute/PrivateRoute.tsx b/src/api/PrivateRoute/PrivateRoute.tsx
index 54532ff..e75de44 100644
--- a/src/api/PrivateRoute/PrivateRoute.tsx
+++ b/src/api/PrivateRoute/PrivateRoute.tsx
@@ -3,6 +3,7 @@ import axios from 'axios';
 import { Route, Redirect, RouteProps } from 'react-router-dom';
 import { NonAuthRoutes } from 'api/routes';
 import { AuthContext } from 'components/AuthUser/AuthContext';
+import { Roles } from 'api/userRoles';
 
 /**
  * A wrapper for <Route> that redirects to the login screen if you're not yet authenticated.
@@ -22,14 +23,12 @@ export const PrivateRoute = ({
   requiredRoles,
 }: 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> => {
       const result = await axios('/api/web/login/is_authenticated');
       setAuth(result.data.is_authenticated);
-      setLoading(true);
       return null;
     };
     /*
@@ -38,9 +37,8 @@ export const PrivateRoute = ({
     this component state is triggered, falling in unnecessary calls to the
     server.
     */
-    if (role) fetch();
+    if (role !== Roles.visitor) fetch();
   }, [auth]);
-
   const userHasRequiredRole = requiredRoles.includes(role);
   const message = userHasRequiredRole
     ? 'Please log in to view this page'
-- 
GitLab