Skip to content

Commit 528e018

Browse files
bugfix(fe): add permissionss to lookup table definitions create/update/delete actions (#1586)
1 parent 53408d6 commit 528e018

File tree

3 files changed

+57
-47
lines changed

3 files changed

+57
-47
lines changed

odd-platform-ui/src/components/DataEntityDetails/DatasetStructure/DatasetStructure.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@ const DatasetStructure: FC = () => {
3535
Permission.DATASET_FIELD_ADD_TERM,
3636
Permission.DATASET_FIELD_DELETE_TERM,
3737
Permission.DATASET_FIELD_INTERNAL_NAME_UPDATE,
38+
Permission.LOOKUP_TABLE_DEFINITION_CREATE,
39+
Permission.LOOKUP_TABLE_DEFINITION_UPDATE,
40+
Permission.LOOKUP_TABLE_DEFINITION_DELETE,
3841
]}
3942
resourcePermissions={resourcePermissions}
4043
Component={DatasetStructureOverview}

odd-platform-ui/src/components/DataEntityDetails/DatasetStructure/DatasetStructureOverview/DatasetStructureView/DatasetFieldOverview/DatasetFieldHeader/DatasetFieldHeader.tsx

Lines changed: 40 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -83,44 +83,48 @@ const DatasetFieldHeader = ({ field }: DatasetFieldHeaderProps) => {
8383
</Grid>
8484
{!field.isPrimaryKey && !!lookupTableField && lookupTableId && (
8585
<Grid item display='flex' alignItems='center'>
86-
<ColumnForm
87-
btnEl={
88-
<Button
89-
text={t('Edit')}
90-
buttonType='secondary-m'
91-
startIcon={<EditIcon />}
92-
/>
93-
}
94-
lookupTableField={lookupTableField}
95-
lookupTableId={lookupTableId}
96-
/>
97-
<AppPopover
98-
renderOpenBtn={({ onClick, ariaDescribedBy }) => (
99-
<Button
100-
aria-describedby={ariaDescribedBy}
101-
buttonType='secondary-m'
102-
icon={<KebabIcon />}
103-
onClick={onClick}
104-
sx={{ ml: 1 }}
105-
/>
106-
)}
107-
anchorOrigin={{ vertical: 'bottom', horizontal: 'left' }}
108-
transformOrigin={{ vertical: -5, horizontal: 67 }}
109-
>
110-
<ConfirmationDialog
111-
actionTitle={t('Are you sure you want to delete this column?')}
112-
actionName={t('Delete column')}
113-
actionText={
114-
<>
115-
&quot;{field.name}&quot; {t('will be deleted permanently')}
116-
</>
117-
}
118-
onConfirm={() =>
119-
handleColumnDelete(lookupTableId, lookupTableField.fieldId)
86+
<WithPermissions permissionTo={Permission.LOOKUP_TABLE_DEFINITION_UPDATE}>
87+
<ColumnForm
88+
btnEl={
89+
<Button
90+
text={t('Edit')}
91+
buttonType='secondary-m'
92+
startIcon={<EditIcon />}
93+
/>
12094
}
121-
actionBtn={<AppMenuItem>{t('Delete')}</AppMenuItem>}
95+
lookupTableField={lookupTableField}
96+
lookupTableId={lookupTableId}
12297
/>
123-
</AppPopover>
98+
</WithPermissions>
99+
<WithPermissions permissionTo={Permission.LOOKUP_TABLE_DEFINITION_DELETE}>
100+
<AppPopover
101+
renderOpenBtn={({ onClick, ariaDescribedBy }) => (
102+
<Button
103+
aria-describedby={ariaDescribedBy}
104+
buttonType='secondary-m'
105+
icon={<KebabIcon />}
106+
onClick={onClick}
107+
sx={{ ml: 1 }}
108+
/>
109+
)}
110+
anchorOrigin={{ vertical: 'bottom', horizontal: 'left' }}
111+
transformOrigin={{ vertical: -5, horizontal: 67 }}
112+
>
113+
<ConfirmationDialog
114+
actionTitle={t('Are you sure you want to delete this column?')}
115+
actionName={t('Delete column')}
116+
actionText={
117+
<>
118+
&quot;{field.name}&quot; {t('will be deleted permanently')}
119+
</>
120+
}
121+
onConfirm={() =>
122+
handleColumnDelete(lookupTableId, lookupTableField.fieldId)
123+
}
124+
actionBtn={<AppMenuItem>{t('Delete')}</AppMenuItem>}
125+
/>
126+
</AppPopover>
127+
</WithPermissions>
124128
</Grid>
125129
)}
126130
</Grid>

odd-platform-ui/src/components/DataEntityDetails/DatasetStructure/DatasetStructureOverview/DatasetStructureView/DatasetStructureList/DatasetStructureList.tsx

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import React, { type FC, useCallback, useEffect, useMemo, useRef } from 'react';
22
import { useVirtualizer } from '@tanstack/react-virtual';
3-
import { type DataSetField } from 'generated-sources';
3+
import { Permission, type DataSetField } from 'generated-sources';
44
import { useDataEntityRouteParams } from 'routes';
55
import { Box } from '@mui/material';
66
import { AddIcon } from 'components/shared/icons';
@@ -9,6 +9,7 @@ import { useTranslation } from 'react-i18next';
99
import ColumnForm from 'components/shared/elements/forms/ColumnForm';
1010
import { getDataEntityDetails } from 'redux/selectors';
1111
import { useAppSelector } from 'redux/lib/hooks';
12+
import { WithPermissions } from 'components/shared/contexts';
1213
import DatasetStructureItem from './DatasetStructureItem/DatasetStructureItem';
1314
import * as S from './DatasetStructureList.styles';
1415
import useStructure from '../../lib/useStructure';
@@ -78,16 +79,18 @@ const DatasetStructureList: FC = () => {
7879
pl={1}
7980
height={theme => theme.spacing(6)}
8081
>
81-
<ColumnForm
82-
btnEl={
83-
<Button
84-
text={t('Add column')}
85-
buttonType='tertiary-m'
86-
startIcon={<AddIcon />}
87-
/>
88-
}
89-
lookupTableId={lookupTableId}
90-
/>
82+
<WithPermissions permissionTo={Permission.LOOKUP_TABLE_DEFINITION_CREATE}>
83+
<ColumnForm
84+
btnEl={
85+
<Button
86+
text={t('Add column')}
87+
buttonType='tertiary-m'
88+
startIcon={<AddIcon />}
89+
/>
90+
}
91+
lookupTableId={lookupTableId}
92+
/>
93+
</WithPermissions>
9194
</Box>
9295
)}
9396
</S.ItemContainer>

0 commit comments

Comments
 (0)