CEC-3119 Magna Create Certs (#236)

* CEC-3119 FiskerQA
Give Magna access to create certs

* Comment
This commit is contained in:
John Wu
2022-11-15 12:19:43 -08:00
committed by GitHub
parent b7e13382c4
commit aa585bebc3
4 changed files with 32 additions and 7 deletions

View File

@@ -4,11 +4,13 @@ import {
FormLabel, FormLabel,
Radio, Radio,
RadioGroup, RadioGroup,
TextField, TextField
} from "@material-ui/core"; } from "@material-ui/core";
import React, { useRef, useState } from "react"; import React, { useRef, useState } from "react";
import { CertTypeData, CertTypes } from "../../../utils/certificates"; import { CertTypeData, CertTypes } from "../../../utils/certificates";
import { Providers } from "../../../utils/roles";
import { useUserContext } from "../../Contexts/UserContext";
import useStyles from "../../useStyles"; import useStyles from "../../useStyles";
const getCertTypeLabel = (certtype) => { const getCertTypeLabel = (certtype) => {
@@ -17,9 +19,20 @@ const getCertTypeLabel = (certtype) => {
return "ID"; return "ID";
}; };
const getCertsTypes = (providers) => {
if (providers.length === 0) return [];
if (providers[0] === Providers.MAGNA) {
return CertTypeData.filter((item) => {
return (item.label === CertTypes.TBOX || item.label === CertTypes.ICC);
})
}
return CertTypeData;
}
const CreateForm = ({ onCreate, busy }) => { const CreateForm = ({ onCreate, busy }) => {
const classes = useStyles(); const classes = useStyles();
const commonnameEl = useRef(null); const commonnameEl = useRef(null);
const {providers} = useUserContext();
const [certType, setCertType] = useState(CertTypes.TBOX); const [certType, setCertType] = useState(CertTypes.TBOX);
const onSubmit = async (event) => { const onSubmit = async (event) => {
@@ -61,7 +74,7 @@ const CreateForm = ({ onCreate, busy }) => {
onChange={onCertTypeChange} onChange={onCertTypeChange}
margin="normal" margin="normal"
> >
{CertTypeData.map((item, i) => { {getCertsTypes(providers).map((item, i) => {
return ( return (
<FormControlLabel <FormControlLabel
key={i} key={i}

View File

@@ -76,7 +76,7 @@ const SideMenu = () => {
const [menu, setMenu] = useState(menuData); const [menu, setMenu] = useState(menuData);
useEffect(() => { useEffect(() => {
filterAccessible(groups, providers, setMenu); filterMenu(groups, providers, setMenu);
}, [groups, providers]); }, [groups, providers]);
return ( return (
@@ -91,14 +91,22 @@ const SideMenu = () => {
); );
}; };
const filterAccessible = (groups, providers, setMenu) => { const reduceMenu = (data, groups, providers) => {
const filteredMenu = menuData.reduce((result, item) => { return data.reduce((result, item) => {
if (hasRole(groups, item.rolesPerProvider, providers)) { if (hasRole(groups, item.rolesPerProvider, providers)) {
if (item.submenus) {
item.submenus = reduceMenu(item.submenus, groups, providers);
}
result.push(item); result.push(item);
} }
return result; return result;
}, []); }, []);
}
const filterMenu = (groups, providers, setMenu) => {
const filteredMenu = reduceMenu(menuData, groups, providers);
setMenu(filteredMenu); setMenu(filteredMenu);
}; };
export default SideMenu; export default SideMenu;

View File

@@ -225,7 +225,7 @@ const SiteRoutes = () => {
type={TYPES.PROTECTED} type={TYPES.PROTECTED}
token={token} token={token}
groups={groups} groups={groups}
rolesPerGroup={Permissions.FiskerCertificate} rolesPerGroup={Permissions.FiskerMagnaCertificate}
providers={providers} providers={providers}
/> />
<AuthRoute <AuthRoute

View File

@@ -59,9 +59,13 @@ export const Permissions = {
FiskerCreate: { [Providers.FISKER]: [Roles.CREATE] }, FiskerCreate: { [Providers.FISKER]: [Roles.CREATE] },
FiskerDelete: { [Providers.FISKER]: [Roles.DELETE] }, FiskerDelete: { [Providers.FISKER]: [Roles.DELETE] },
FiskerSupplierAdmin: { [Providers.FISKER]: [Roles.APPROVESUPPLIERS] }, FiskerSupplierAdmin: { [Providers.FISKER]: [Roles.APPROVESUPPLIERS] },
FiskerCertificate: { [Providers.FISKER]: [Roles.CERTIFICATES] }, FiskerMagnaCertificate: {
[Providers.FISKER]: [Roles.CERTIFICATES],
[Providers.MAGNA]: [Roles.MAGNAGROUP],
},
FiskerTools: { FiskerTools: {
[Providers.FISKER]: [Roles.APPROVESUPPLIERS, Roles.CERTIFICATES], [Providers.FISKER]: [Roles.APPROVESUPPLIERS, Roles.CERTIFICATES],
[Providers.MAGNA]: [Roles.MAGNAGROUP],
}, },
Magna: { [Providers.MAGNA]: [Roles.MAGNAGROUP] }, Magna: { [Providers.MAGNA]: [Roles.MAGNAGROUP] },
FiskerMagnaRead: { FiskerMagnaRead: {