From 57bce6e039fdb12ebf5f5d77e61d082778a15e47 Mon Sep 17 00:00:00 2001 From: Mateusz Kwasniewski Date: Tue, 14 Feb 2023 08:11:45 +0100 Subject: [PATCH] feat: validate import permissions (#3097) --- .../Import/validate/ValidationStage.tsx | 40 +++++++++++++++++-- .../src/component/project/Project/Project.tsx | 3 +- .../useValidateImportApi.ts | 1 + 3 files changed, 39 insertions(+), 5 deletions(-) diff --git a/frontend/src/component/project/Project/Import/validate/ValidationStage.tsx b/frontend/src/component/project/Project/Import/validate/ValidationStage.tsx index 355f1a314c..c63d87653f 100644 --- a/frontend/src/component/project/Project/Import/validate/ValidationStage.tsx +++ b/frontend/src/component/project/Project/Import/validate/ValidationStage.tsx @@ -10,6 +10,8 @@ import useToast from 'hooks/useToast'; import { formatUnknownError } from 'utils/formatUnknownError'; import { ActionsContainer } from '../ActionsContainer'; import { IMPORT_CONFIGURATION_BUTTON } from 'utils/testIds'; +import PermissionButton from 'component/common/PermissionButton/PermissionButton'; +import { CREATE_FEATURE } from 'component/providers/AccessProvider/permissions'; const ImportInfoContainer = styled(Box)(({ theme }) => ({ backgroundColor: theme.palette.secondaryContainer, @@ -92,7 +94,7 @@ export const ValidationStage: FC<{ const { validateImport } = useValidateImportApi(); const { setToastData } = useToast(); const [validationResult, setValidationResult] = useState( - { errors: [], warnings: [] } + { errors: [], warnings: [], permissions: [] } ); const [validJSON, setValidJSON] = useState(true); @@ -125,6 +127,30 @@ export const ValidationStage: FC<{ + 0} + show={ + + + Missing permissions! There are some + permissions that you need to be granted before + importing this configuration + + {validationResult.permissions.map(error => ( + + {error.message} + + {error.affectedItems.map(item => ( + + {item} + + ))} + + + ))} + + } + /> 0} show={ @@ -187,16 +213,22 @@ export const ValidationStage: FC<{ > Back - +