diff --git a/web/src/containers/Settings/permission.tsx b/web/src/containers/Settings/permission.tsx index ae4c17f..a668779 100644 --- a/web/src/containers/Settings/permission.tsx +++ b/web/src/containers/Settings/permission.tsx @@ -24,6 +24,7 @@ import { styled } from '@mui/material/styles' import PermissionFilterModal from './permissionFilterModal' import AddPermissionModal from './addPermissionModal' +import UpdatePermissionModal from './updatePermissionModal' import { PermissionResponse } from '../../utils/types' @@ -34,6 +35,10 @@ const BootstrapTableCell = styled(TableCell)({ const Permission = () => { const [isLoading, setIsLoading] = useState(false) const [addPermissionModalOpen, setAddPermissionModalOpen] = useState(false) + const [updatePermissionModalOpen, setUpdatePermissionModalOpen] = + useState(false) + const [selectedPermissionForUpdate, setSelectedPermissionForUpdate] = + useState() const [filterModalOpen, setFilterModalOpen] = useState(false) const [uriFilter, setUriFilter] = useState([]) const [principalFilter, setPrincipalFilter] = useState([]) @@ -114,6 +119,13 @@ const Permission = () => { const addPermission = () => {} + const handleUpdatePermissionClick = (permission: PermissionResponse) => { + setSelectedPermissionForUpdate(permission) + setUpdatePermissionModalOpen(true) + } + + const updatePermission = () => {} + return isLoading ? ( { @@ -164,6 +177,14 @@ const Permission = () => { permissions={permissions} addPermission={addPermission} /> + {selectedPermissionForUpdate && ( + + )} ) } @@ -172,9 +193,13 @@ export default Permission type PermissionTableProps = { permissions: PermissionResponse[] + handleUpdatePermissionClick: (permission: PermissionResponse) => void } -const PermissionTable = ({ permissions }: PermissionTableProps) => { +const PermissionTable = ({ + permissions, + handleUpdatePermissionClick +}: PermissionTableProps) => { return ( @@ -196,7 +221,9 @@ const PermissionTable = ({ permissions }: PermissionTableProps) => { {permission.setting} - + handleUpdatePermissionClick(permission)} + > diff --git a/web/src/containers/Settings/updatePermissionModal.tsx b/web/src/containers/Settings/updatePermissionModal.tsx new file mode 100644 index 0000000..e134f4f --- /dev/null +++ b/web/src/containers/Settings/updatePermissionModal.tsx @@ -0,0 +1,80 @@ +import React, { useState, Dispatch, SetStateAction } from 'react' +import { + Button, + Grid, + Dialog, + DialogContent, + DialogActions, + TextField +} from '@mui/material' +import { styled } from '@mui/material/styles' +import Autocomplete from '@mui/material/Autocomplete' + +import { BootstrapDialogTitle } from '../../components/dialogTitle' + +import { PermissionResponse } from '../../utils/types' + +const BootstrapDialog = styled(Dialog)(({ theme }) => ({ + '& .MuiDialogContent-root': { + padding: theme.spacing(2) + }, + '& .MuiDialogActions-root': { + padding: theme.spacing(1) + } +})) + +type UpdatePermissionModalProps = { + open: boolean + handleOpen: Dispatch> + permission: PermissionResponse + updatePermission: (setting: string) => void +} + +const UpdatePermissionModal = ({ + open, + handleOpen, + permission, + updatePermission +}: UpdatePermissionModalProps) => { + const [permissionSetting, setPermissionSetting] = useState('Grant') + + return ( + handleOpen(false)} open={open}> + + Update Permission + + + + + + setPermissionSetting(newValue) + } + renderInput={(params) => ( + + )} + /> + + + + + + + + ) +} + +export default UpdatePermissionModal