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,
|
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}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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: {
|
||||||
|
|||||||
Reference in New Issue
Block a user