CEC-2977 Filter portal access based on auth provider (#231)

* fix/fleet-vehicles-search

* fix/fleet-name-update

* Update hasRole logic, create RoleWrap component

* Add MAGNA and MAGNAGROUP env vars

* Add Permissions

Co-authored-by: jwu-fisker <jwu@fiskerinc.com>
This commit is contained in:
arpanetus
2022-11-09 06:46:33 +06:00
committed by GitHub
parent 94950d583e
commit f2f046968e
76 changed files with 1321 additions and 917 deletions

View File

@@ -2,7 +2,7 @@ import React, { useContext, useEffect, useState } from "react";
import auth from "../../services/auth";
import getTimerWorker from "../../services/getTimerWorker";
import { parsePayload } from "../../utils/jwt";
import { getGroups } from "../../utils/roles";
import {getGroups, getProviders} from "../../utils/roles";
const UserContext = React.createContext();
@@ -10,6 +10,7 @@ export const UserProvider = ({ children }) => {
const [fetching, setFetching] = useState(false);
const [token, setToken] = useState(null);
const [groups, setGroups] = useState(null);
const [providers, setProviders] = useState(null);
const [error, setError] = useState(null);
let timer;
@@ -73,6 +74,7 @@ export const UserProvider = ({ children }) => {
}
setGroups(getGroups(idToken));
setProviders(getProviders(idToken));
startSessionTimer();
} catch (e) {
setError(`Verify error. ${e.message}`);
@@ -106,6 +108,7 @@ export const UserProvider = ({ children }) => {
const signOut = () => {
setGroups(null);
setProviders(null);
setToken(null);
if (localStorage) {
localStorage.removeItem("token");
@@ -153,6 +156,7 @@ export const UserProvider = ({ children }) => {
error,
fetching,
groups,
providers,
token,
getAuthorizeURL,
getLogoutURL,

View File

@@ -1,9 +1,10 @@
import React from "react";
import { getGroups } from "../../../utils/roles";
import {getGroups, getProviders} from "../../../utils/roles";
let token = null;
let groups = null;
let providers = null;
let fetching = false;
let error = null;
let signInResp = {};
@@ -20,6 +21,7 @@ export const useUserContext = () => ({
error,
fetching,
groups,
providers,
token,
getAuthorizeURL: jest.fn(() => authorizeURL),
getLogoutURL: jest.fn(() => logoutURL),
@@ -35,8 +37,10 @@ export const setToken = (val) => {
token = val;
if (!val || !val.idToken || !val.idToken.jwtToken) {
groups = null;
providers = null
} else {
groups = getGroups(val.idToken.jwtToken);
providers = getProviders(val.idToken.jwtToken);
}
};