import SettingsIcon from '@mui/icons-material/Settings'; import IconButton from '@mui/material/IconButton'; import Paper from '@mui/material/Paper'; import Stack from '@mui/material/Stack'; import Table from '@mui/material/Table'; import TableBody from '@mui/material/TableBody'; import TableCell from '@mui/material/TableCell'; import TableContainer from '@mui/material/TableContainer'; import TableHead from '@mui/material/TableHead'; import TableRow from '@mui/material/TableRow'; import Typography from '@mui/material/Typography'; import * as React from 'react'; import ControlledCheckbox from 'components/ControlledCheckbox'; import usePermissionCatalog from 'hooks/usePermissionCatalog.ee'; import PermissionSettings from './PermissionSettings.ee'; type PermissionCatalogFieldProps = { name?: string; disabled?: boolean; }; const PermissionCatalogField = ({ name = 'permissions', disabled = false }: PermissionCatalogFieldProps) => { const permissionCatalog = usePermissionCatalog(); const [dialogName, setDialogName] = React.useState(); if (!permissionCatalog) return (); return ( {permissionCatalog.actions.map(action => ( {action.label} ))} {permissionCatalog.subjects.map((subject) => ( {subject.label} {permissionCatalog.actions.map((action) => ( {action.subjects.includes(subject.key) && ( )} {!action.subjects.includes(subject.key) && '-'} ))} setDialogName(subject.key)} disabled={disabled} > {dialogName === subject.key && ( setDialogName('')} fieldPrefix={`${name}.${subject.key}`} subject={subject.key} actions={permissionCatalog.actions} conditions={permissionCatalog.conditions} /> )} ))}
) }; export default PermissionCatalogField;