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:
@@ -1,10 +1,10 @@
|
||||
import React, { Suspense } from "react";
|
||||
import { Switch } from "react-router-dom";
|
||||
|
||||
import { AuthRoute, TYPES } from "../Routes/AuthRoute";
|
||||
import { MessageBar } from "../MessageBar";
|
||||
import { Permissions } from "../../utils/roles";
|
||||
import { useUserContext } from "../Contexts/UserContext";
|
||||
import { Roles } from "../../utils/roles";
|
||||
import { MessageBar } from "../MessageBar";
|
||||
import { AuthRoute, TYPES } from "../Routes/AuthRoute";
|
||||
|
||||
const CANFilterCreate = React.lazy(() => import("../CANFilter/Add"));
|
||||
const CANFilterUpdate = React.lazy(() => import("../CANFilter/Update"));
|
||||
@@ -39,7 +39,7 @@ const SuppliersList = React.lazy(() => import("../Suppliers/List"));
|
||||
const SupplierDetails = React.lazy(() => import("../Suppliers/Details"));
|
||||
const Datascope = React.lazy(() => import("../Dashboard"));
|
||||
const SiteRoutes = () => {
|
||||
const { token, groups } = useUserContext();
|
||||
const { token, groups, providers } = useUserContext();
|
||||
return (
|
||||
<Suspense fallback={"Loading..."}>
|
||||
<MessageBar />
|
||||
@@ -57,7 +57,8 @@ const SiteRoutes = () => {
|
||||
type={TYPES.PROTECTED}
|
||||
token={token}
|
||||
groups={groups}
|
||||
roles={[Roles.CREATE]}
|
||||
rolesPerGroup={Permissions.FiskerCreate}
|
||||
providers={providers}
|
||||
/>
|
||||
<AuthRoute
|
||||
path="/filter-update"
|
||||
@@ -65,7 +66,8 @@ const SiteRoutes = () => {
|
||||
type={TYPES.PROTECTED}
|
||||
token={token}
|
||||
groups={groups}
|
||||
roles={[Roles.CREATE]}
|
||||
rolesPerGroup={Permissions.FiskerCreate}
|
||||
providers={providers}
|
||||
/>
|
||||
<AuthRoute
|
||||
path="/fleets"
|
||||
@@ -73,7 +75,8 @@ const SiteRoutes = () => {
|
||||
type={TYPES.PROTECTED}
|
||||
token={token}
|
||||
groups={groups}
|
||||
roles={[Roles.READ, Roles.CREATE]}
|
||||
rolesPerGroup={Permissions.FiskerRead}
|
||||
providers={providers}
|
||||
/>
|
||||
<AuthRoute
|
||||
path="/fleet/:name/vehicle-add"
|
||||
@@ -81,7 +84,8 @@ const SiteRoutes = () => {
|
||||
type={TYPES.PROTECTED}
|
||||
token={token}
|
||||
groups={groups}
|
||||
roles={[Roles.READ, Roles.CREATE]}
|
||||
rolesPerGroup={Permissions.FiskerRead}
|
||||
providers={providers}
|
||||
/>
|
||||
<AuthRoute
|
||||
path="/fleet/:name/filter-add"
|
||||
@@ -89,7 +93,8 @@ const SiteRoutes = () => {
|
||||
type={TYPES.PROTECTED}
|
||||
token={token}
|
||||
groups={groups}
|
||||
roles={[Roles.READ, Roles.CREATE]}
|
||||
rolesPerGroup={Permissions.FiskerRead}
|
||||
providers={providers}
|
||||
/>
|
||||
<AuthRoute
|
||||
path="/fleet/:name/filter-update"
|
||||
@@ -97,7 +102,8 @@ const SiteRoutes = () => {
|
||||
type={TYPES.PROTECTED}
|
||||
token={token}
|
||||
groups={groups}
|
||||
roles={[Roles.READ, Roles.CREATE]}
|
||||
rolesPerGroup={Permissions.FiskerRead}
|
||||
providers={providers}
|
||||
/>
|
||||
<AuthRoute
|
||||
path="/fleet/:name"
|
||||
@@ -105,7 +111,8 @@ const SiteRoutes = () => {
|
||||
type={TYPES.PROTECTED}
|
||||
token={token}
|
||||
groups={groups}
|
||||
roles={[Roles.READ, Roles.CREATE]}
|
||||
rolesPerGroup={Permissions.FiskerRead}
|
||||
providers={providers}
|
||||
/>
|
||||
<AuthRoute
|
||||
path="/fleet-add"
|
||||
@@ -113,7 +120,8 @@ const SiteRoutes = () => {
|
||||
type={TYPES.PROTECTED}
|
||||
token={token}
|
||||
groups={groups}
|
||||
roles={[Roles.CREATE]}
|
||||
rolesPerGroup={Permissions.FiskerRead}
|
||||
providers={providers}
|
||||
/>
|
||||
<AuthRoute
|
||||
path="/fleet-update"
|
||||
@@ -121,7 +129,8 @@ const SiteRoutes = () => {
|
||||
type={TYPES.PROTECTED}
|
||||
token={token}
|
||||
groups={groups}
|
||||
roles={[Roles.CREATE]}
|
||||
rolesPerGroup={Permissions.FiskerCreate}
|
||||
providers={providers}
|
||||
/>
|
||||
<AuthRoute
|
||||
path="/home"
|
||||
@@ -135,7 +144,8 @@ const SiteRoutes = () => {
|
||||
type={TYPES.PROTECTED}
|
||||
token={token}
|
||||
groups={groups}
|
||||
roles={[Roles.READ, Roles.CREATE]}
|
||||
rolesPerGroup={Permissions.FiskerMagnaRead}
|
||||
providers={providers}
|
||||
/>
|
||||
<AuthRoute
|
||||
path="/package-deploy/:manifest_id"
|
||||
@@ -143,7 +153,8 @@ const SiteRoutes = () => {
|
||||
type={TYPES.PROTECTED}
|
||||
token={token}
|
||||
groups={groups}
|
||||
roles={[Roles.CREATE]}
|
||||
rolesPerGroup={Permissions.FiskerMagnaRead}
|
||||
providers={providers}
|
||||
/>
|
||||
<AuthRoute
|
||||
path="/package-status/:manifest_id"
|
||||
@@ -151,7 +162,8 @@ const SiteRoutes = () => {
|
||||
type={TYPES.PROTECTED}
|
||||
token={token}
|
||||
groups={groups}
|
||||
roles={[Roles.READ, Roles.CREATE]}
|
||||
rolesPerGroup={Permissions.FiskerMagnaRead}
|
||||
providers={providers}
|
||||
/>
|
||||
<AuthRoute
|
||||
path="/package-update/:manifest_id"
|
||||
@@ -159,7 +171,8 @@ const SiteRoutes = () => {
|
||||
type={TYPES.PROTECTED}
|
||||
token={token}
|
||||
groups={groups}
|
||||
roles={[Roles.READ, Roles.CREATE]}
|
||||
rolesPerGroup={Permissions.FiskerRead}
|
||||
providers={providers}
|
||||
/>
|
||||
<AuthRoute
|
||||
path="/vehicles"
|
||||
@@ -167,7 +180,8 @@ const SiteRoutes = () => {
|
||||
type={TYPES.PROTECTED}
|
||||
token={token}
|
||||
groups={groups}
|
||||
roles={[Roles.READ, Roles.CREATE]}
|
||||
rolesPerGroup={Permissions.FiskerMagnaRead}
|
||||
providers={providers}
|
||||
/>
|
||||
<AuthRoute
|
||||
path="/vehicle-add"
|
||||
@@ -175,7 +189,8 @@ const SiteRoutes = () => {
|
||||
type={TYPES.PROTECTED}
|
||||
token={token}
|
||||
groups={groups}
|
||||
roles={[Roles.CREATE]}
|
||||
rolesPerGroup={Permissions.FiskerCreate}
|
||||
providers={providers}
|
||||
/>
|
||||
<AuthRoute
|
||||
path="/vehicle-status/:vin/:carupdateid"
|
||||
@@ -183,7 +198,8 @@ const SiteRoutes = () => {
|
||||
type={TYPES.PROTECTED}
|
||||
token={token}
|
||||
groups={groups}
|
||||
roles={[Roles.READ, Roles.CREATE]}
|
||||
rolesPerGroup={Permissions.FiskerMagnaRead}
|
||||
providers={providers}
|
||||
/>
|
||||
<AuthRoute
|
||||
path="/vehicle-status/:vin"
|
||||
@@ -191,7 +207,8 @@ const SiteRoutes = () => {
|
||||
type={TYPES.PROTECTED}
|
||||
token={token}
|
||||
groups={groups}
|
||||
roles={[Roles.READ, Roles.CREATE]}
|
||||
rolesPerGroup={Permissions.FiskerMagnaRead}
|
||||
providers={providers}
|
||||
/>
|
||||
<AuthRoute
|
||||
path="/vehicle-update"
|
||||
@@ -199,7 +216,8 @@ const SiteRoutes = () => {
|
||||
type={TYPES.PROTECTED}
|
||||
token={token}
|
||||
groups={groups}
|
||||
roles={[Roles.CREATE]}
|
||||
rolesPerGroup={Permissions.FiskerCreate}
|
||||
providers={providers}
|
||||
/>
|
||||
<AuthRoute
|
||||
path="/tools/certificates/add"
|
||||
@@ -207,7 +225,8 @@ const SiteRoutes = () => {
|
||||
type={TYPES.PROTECTED}
|
||||
token={token}
|
||||
groups={groups}
|
||||
roles={[Roles.CERTIFICATES]}
|
||||
rolesPerGroup={Permissions.FiskerCertificate}
|
||||
providers={providers}
|
||||
/>
|
||||
<AuthRoute
|
||||
path="/tools/sms/send"
|
||||
@@ -215,7 +234,8 @@ const SiteRoutes = () => {
|
||||
type={TYPES.PROTECTED}
|
||||
token={token}
|
||||
groups={groups}
|
||||
roles={[Roles.CREATE]}
|
||||
rolesPerGroup={Permissions.FiskerCreate}
|
||||
providers={providers}
|
||||
/>
|
||||
<AuthRoute
|
||||
path="/suppliers"
|
||||
@@ -223,7 +243,8 @@ const SiteRoutes = () => {
|
||||
type={TYPES.PROTECTED}
|
||||
token={token}
|
||||
groups={groups}
|
||||
roles={[Roles.APPROVESUPPLIERS]}
|
||||
rolesPerGroup={Permissions.FiskerSupplierAdmin}
|
||||
providers={providers}
|
||||
/>
|
||||
<AuthRoute
|
||||
path="/supplier/:email"
|
||||
@@ -231,7 +252,8 @@ const SiteRoutes = () => {
|
||||
type={TYPES.PROTECTED}
|
||||
token={token}
|
||||
groups={groups}
|
||||
roles={[Roles.APPROVESUPPLIERS]}
|
||||
rolesPerGroup={Permissions.FiskerSupplierAdmin}
|
||||
providers={providers}
|
||||
/>
|
||||
<AuthRoute
|
||||
path="/datascope"
|
||||
@@ -239,7 +261,8 @@ const SiteRoutes = () => {
|
||||
type={TYPES.PROTECTED}
|
||||
token={token}
|
||||
groups={groups}
|
||||
roles={[Roles.READ, Roles.CREATE]}
|
||||
rolesPerGroup={Permissions.FiskerRead}
|
||||
providers={providers}
|
||||
/>
|
||||
<PageNotFound />
|
||||
</Switch>
|
||||
|
||||
Reference in New Issue
Block a user