CEC-3119 Magna Create Certs (#236)
* CEC-3119 FiskerQA Give Magna access to create certs * Comment
This commit is contained in:
@@ -4,11 +4,13 @@ import {
|
||||
FormLabel,
|
||||
Radio,
|
||||
RadioGroup,
|
||||
TextField,
|
||||
TextField
|
||||
} from "@material-ui/core";
|
||||
import React, { useRef, useState } from "react";
|
||||
|
||||
import { CertTypeData, CertTypes } from "../../../utils/certificates";
|
||||
import { Providers } from "../../../utils/roles";
|
||||
import { useUserContext } from "../../Contexts/UserContext";
|
||||
import useStyles from "../../useStyles";
|
||||
|
||||
const getCertTypeLabel = (certtype) => {
|
||||
@@ -17,9 +19,20 @@ const getCertTypeLabel = (certtype) => {
|
||||
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 classes = useStyles();
|
||||
const commonnameEl = useRef(null);
|
||||
const {providers} = useUserContext();
|
||||
const [certType, setCertType] = useState(CertTypes.TBOX);
|
||||
|
||||
const onSubmit = async (event) => {
|
||||
@@ -61,7 +74,7 @@ const CreateForm = ({ onCreate, busy }) => {
|
||||
onChange={onCertTypeChange}
|
||||
margin="normal"
|
||||
>
|
||||
{CertTypeData.map((item, i) => {
|
||||
{getCertsTypes(providers).map((item, i) => {
|
||||
return (
|
||||
<FormControlLabel
|
||||
key={i}
|
||||
|
||||
@@ -76,7 +76,7 @@ const SideMenu = () => {
|
||||
const [menu, setMenu] = useState(menuData);
|
||||
|
||||
useEffect(() => {
|
||||
filterAccessible(groups, providers, setMenu);
|
||||
filterMenu(groups, providers, setMenu);
|
||||
}, [groups, providers]);
|
||||
|
||||
return (
|
||||
@@ -91,14 +91,22 @@ const SideMenu = () => {
|
||||
);
|
||||
};
|
||||
|
||||
const filterAccessible = (groups, providers, setMenu) => {
|
||||
const filteredMenu = menuData.reduce((result, item) => {
|
||||
const reduceMenu = (data, groups, providers) => {
|
||||
return data.reduce((result, item) => {
|
||||
if (hasRole(groups, item.rolesPerProvider, providers)) {
|
||||
if (item.submenus) {
|
||||
item.submenus = reduceMenu(item.submenus, groups, providers);
|
||||
}
|
||||
result.push(item);
|
||||
}
|
||||
return result;
|
||||
}, []);
|
||||
}
|
||||
|
||||
const filterMenu = (groups, providers, setMenu) => {
|
||||
const filteredMenu = reduceMenu(menuData, groups, providers);
|
||||
setMenu(filteredMenu);
|
||||
};
|
||||
|
||||
|
||||
export default SideMenu;
|
||||
|
||||
@@ -225,7 +225,7 @@ const SiteRoutes = () => {
|
||||
type={TYPES.PROTECTED}
|
||||
token={token}
|
||||
groups={groups}
|
||||
rolesPerGroup={Permissions.FiskerCertificate}
|
||||
rolesPerGroup={Permissions.FiskerMagnaCertificate}
|
||||
providers={providers}
|
||||
/>
|
||||
<AuthRoute
|
||||
|
||||
@@ -59,9 +59,13 @@ export const Permissions = {
|
||||
FiskerCreate: { [Providers.FISKER]: [Roles.CREATE] },
|
||||
FiskerDelete: { [Providers.FISKER]: [Roles.DELETE] },
|
||||
FiskerSupplierAdmin: { [Providers.FISKER]: [Roles.APPROVESUPPLIERS] },
|
||||
FiskerCertificate: { [Providers.FISKER]: [Roles.CERTIFICATES] },
|
||||
FiskerMagnaCertificate: {
|
||||
[Providers.FISKER]: [Roles.CERTIFICATES],
|
||||
[Providers.MAGNA]: [Roles.MAGNAGROUP],
|
||||
},
|
||||
FiskerTools: {
|
||||
[Providers.FISKER]: [Roles.APPROVESUPPLIERS, Roles.CERTIFICATES],
|
||||
[Providers.MAGNA]: [Roles.MAGNAGROUP],
|
||||
},
|
||||
Magna: { [Providers.MAGNA]: [Roles.MAGNAGROUP] },
|
||||
FiskerMagnaRead: {
|
||||
|
||||
Reference in New Issue
Block a user