diff --git a/frontend/src/component/admin/groups/EditGroup/EditGroup.tsx b/frontend/src/component/admin/groups/EditGroup/EditGroup.tsx
index 88f0e23eaf..46cfd42dc1 100644
--- a/frontend/src/component/admin/groups/EditGroup/EditGroup.tsx
+++ b/frontend/src/component/admin/groups/EditGroup/EditGroup.tsx
@@ -6,7 +6,7 @@ import useUiConfig from 'hooks/api/getters/useUiConfig/useUiConfig';
import useToast from 'hooks/useToast';
import { useGroupApi } from 'hooks/api/actions/useGroupApi/useGroupApi';
import { formatUnknownError } from 'utils/formatUnknownError';
-import { Button } from '@mui/material';
+import { Button, Tooltip } from '@mui/material';
import { EDIT } from 'constants/misc';
import { useRequiredPathParam } from 'hooks/useRequiredPathParam';
import { useGroup } from 'hooks/api/getters/useGroup/useGroup';
@@ -14,6 +14,8 @@ import { UG_SAVE_BTN_ID } from 'utils/testIds';
import { GO_BACK } from 'constants/navigate';
import { useGroups } from 'hooks/api/getters/useGroups/useGroups';
import type { IGroup } from 'interfaces/group';
+import { scimGroupTooltip } from '../group-constants';
+import { useScimSettings } from 'hooks/api/getters/useScimSettings/useScimSettings';
export const EditGroupContainer = () => {
const groupId = Number(useRequiredPathParam('groupId'));
@@ -46,6 +48,11 @@ export const EditGroup = ({
const { uiConfig } = useUiConfig();
const navigate = useNavigate();
+ const {
+ settings: { enabled: scimEnabled },
+ } = useScimSettings();
+ const isScimGroup = scimEnabled && Boolean(group?.scimId);
+
const {
name,
setName,
@@ -143,15 +150,19 @@ export const EditGroup = ({
handleCancel={handleCancel}
mode={EDIT}
>
-
+
+
+
+
+
);
diff --git a/frontend/src/component/admin/groups/Group/Group.tsx b/frontend/src/component/admin/groups/Group/Group.tsx
index 850679ef10..69d42107b2 100644
--- a/frontend/src/component/admin/groups/Group/Group.tsx
+++ b/frontend/src/component/admin/groups/Group/Group.tsx
@@ -41,6 +41,8 @@ import {
UG_EDIT_USERS_BTN_ID,
UG_REMOVE_USER_BTN_ID,
} from 'utils/testIds';
+import { useScimSettings } from 'hooks/api/getters/useScimSettings/useScimSettings';
+import { scimGroupTooltip } from '../group-constants';
export const groupUsersPlaceholder: IGroupUser[] = Array(15).fill({
name: 'Name of the user',
@@ -68,6 +70,11 @@ export const Group: VFC = () => {
const [removeUserOpen, setRemoveUserOpen] = useState(false);
const [selectedUser, setSelectedUser] = useState();
+ const {
+ settings: { enabled: scimEnabled },
+ } = useScimSettings();
+ const isScimGroup = scimEnabled && Boolean(group?.scimId);
+
const columns = useMemo(
() => [
{
@@ -127,7 +134,11 @@ export const Group: VFC = () => {
Cell: ({ row: { original: rowUser } }: any) => (
@@ -138,6 +149,7 @@ export const Group: VFC = () => {
setSelectedUser(rowUser);
setRemoveUserOpen(true);
}}
+ disabled={isScimGroup}
>
@@ -245,8 +257,11 @@ export const Group: VFC = () => {
data-loading
permission={ADMIN}
tooltipProps={{
- title: 'Edit group',
+ title: isScimGroup
+ ? scimGroupTooltip
+ : 'Edit group',
}}
+ disabled={isScimGroup}
>
@@ -256,8 +271,11 @@ export const Group: VFC = () => {
onClick={() => setRemoveOpen(true)}
permission={ADMIN}
tooltipProps={{
- title: 'Delete group',
+ title: isScimGroup
+ ? scimGroupTooltip
+ : 'Delete group',
}}
+ disabled={isScimGroup}
>
@@ -304,6 +322,12 @@ export const Group: VFC = () => {
maxWidth='700px'
Icon={Add}
permission={ADMIN}
+ disabled={isScimGroup}
+ tooltipProps={{
+ title: isScimGroup
+ ? scimGroupTooltip
+ : '',
+ }}
>
Edit users
diff --git a/frontend/src/component/admin/groups/GroupsList/GroupCard/GroupCard.tsx b/frontend/src/component/admin/groups/GroupsList/GroupCard/GroupCard.tsx
index 88a9f0bd95..4705eec80c 100644
--- a/frontend/src/component/admin/groups/GroupsList/GroupCard/GroupCard.tsx
+++ b/frontend/src/component/admin/groups/GroupsList/GroupCard/GroupCard.tsx
@@ -7,6 +7,7 @@ import { Badge } from 'component/common/Badge/Badge';
import { GroupCardActions } from './GroupCardActions/GroupCardActions';
import TopicOutlinedIcon from '@mui/icons-material/TopicOutlined';
import { RoleBadge } from 'component/common/RoleBadge/RoleBadge';
+import { useScimSettings } from 'hooks/api/getters/useScimSettings/useScimSettings';
const StyledLink = styled(Link)(({ theme }) => ({
textDecoration: 'none',
@@ -96,6 +97,12 @@ export const GroupCard = ({
onRemoveGroup,
}: IGroupCardProps) => {
const navigate = useNavigate();
+
+ const {
+ settings: { enabled: scimEnabled },
+ } = useScimSettings();
+ const isScimGroup = scimEnabled && Boolean(group.scimId);
+
return (
<>
@@ -107,6 +114,7 @@ export const GroupCard = ({
groupId={group.id}
onEditUsers={() => onEditUsers(group)}
onRemove={() => onRemoveGroup(group)}
+ isScimGroup={isScimGroup}
/>
diff --git a/frontend/src/component/admin/groups/GroupsList/GroupCard/GroupCardActions/GroupCardActions.tsx b/frontend/src/component/admin/groups/GroupsList/GroupCard/GroupCardActions/GroupCardActions.tsx
index ade5846149..efc0f4e955 100644
--- a/frontend/src/component/admin/groups/GroupsList/GroupCard/GroupCardActions/GroupCardActions.tsx
+++ b/frontend/src/component/admin/groups/GroupsList/GroupCard/GroupCardActions/GroupCardActions.tsx
@@ -15,6 +15,7 @@ import Edit from '@mui/icons-material/Edit';
import GroupRounded from '@mui/icons-material/GroupRounded';
import MoreVert from '@mui/icons-material/MoreVert';
import { Link } from 'react-router-dom';
+import { scimGroupTooltip } from 'component/admin/groups/group-constants';
const StyledActions = styled('div')(({ theme }) => ({
display: 'flex',
@@ -31,12 +32,14 @@ interface IGroupCardActions {
groupId: number;
onEditUsers: () => void;
onRemove: () => void;
+ isScimGroup?: boolean;
}
export const GroupCardActions: FC = ({
groupId,
onEditUsers,
onRemove,
+ isScimGroup,
}) => {
const [anchorEl, setAnchorEl] = useState(null);
@@ -58,17 +61,24 @@ export const GroupCardActions: FC = ({
e.stopPropagation();
}}
>
-
-
-
-
+
+
+
+
+
+