Skip to content
Snippets Groups Projects
Verified Commit 95f44dae authored by Defendi Alberto's avatar Defendi Alberto
Browse files

Call is_authenticated after role is fetched.

parent 6e1419c7
No related branches found
No related tags found
2 merge requests!56Refined auth flow and new website pages.,!43Move back cookie fetch to SignInForm. Role fetched and saved into a Context. Small refactorings.
...@@ -6,6 +6,7 @@ import { AuthContext } from 'components/AuthUser/AuthContext'; ...@@ -6,6 +6,7 @@ import { AuthContext } from 'components/AuthUser/AuthContext';
/** /**
* A wrapper for <Route> that redirects to the login screen if you're not yet authenticated. * A wrapper for <Route> that redirects to the login screen if you're not yet authenticated.
* Every non-public route must be wrapped with this component.
* */ * */
type Props = { type Props = {
...@@ -31,17 +32,21 @@ export const PrivateRoute = ({ ...@@ -31,17 +32,21 @@ export const PrivateRoute = ({
setLoading(true); setLoading(true);
return null; return null;
}; };
fetch(); /*
}, []); Check if user is logged in.
Avoiding this condition would call is\_authenticated every time
this component state is triggered, falling in unnecessary calls to the
server.
*/
if (role) fetch();
}, [auth]);
const userHasRequiredRole = requiredRoles.includes(role); const userHasRequiredRole = requiredRoles.includes(role);
const message = userHasRequiredRole const message = userHasRequiredRole
? 'Please log in to view this page' ? 'Please log in to view this page'
: 'Your role is not allowed'; : 'Your role is not allowed';
return !loading ? ( return (
<p>loading</p>
) : (
<Route <Route
exact={false} exact={false}
path={path} path={path}
...@@ -52,7 +57,7 @@ export const PrivateRoute = ({ ...@@ -52,7 +57,7 @@ export const PrivateRoute = ({
<Redirect <Redirect
to={{ to={{
pathname: userHasRequiredRole pathname: userHasRequiredRole
? NonAuthRoutes.signIn ? `auth/${NonAuthRoutes.signIn}`
: NonAuthRoutes.unauthorized, : NonAuthRoutes.unauthorized,
state: { state: {
message, message,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment