diff --git a/frontend/src/pages/organization/AccessManagementPage/components/UpgradePrivilegeSystemModal/UpgradePrivilegeSystemModal.tsx b/frontend/src/pages/organization/AccessManagementPage/components/UpgradePrivilegeSystemModal/UpgradePrivilegeSystemModal.tsx index b4cd3d230..d093cf49e 100644 --- a/frontend/src/pages/organization/AccessManagementPage/components/UpgradePrivilegeSystemModal/UpgradePrivilegeSystemModal.tsx +++ b/frontend/src/pages/organization/AccessManagementPage/components/UpgradePrivilegeSystemModal/UpgradePrivilegeSystemModal.tsx @@ -64,7 +64,7 @@ export const UpgradePrivilegeSystemModal = ({ isOpen, onOpenChange }: Props) => return ( - +

Introducing Permission-Based Privilege Management diff --git a/frontend/src/pages/project/AccessControlPage/AccessControlPage.tsx b/frontend/src/pages/project/AccessControlPage/AccessControlPage.tsx index 219de8305..d01d45c2d 100644 --- a/frontend/src/pages/project/AccessControlPage/AccessControlPage.tsx +++ b/frontend/src/pages/project/AccessControlPage/AccessControlPage.tsx @@ -3,8 +3,7 @@ import { useTranslation } from "react-i18next"; import { useNavigate, useSearch } from "@tanstack/react-router"; import { PageHeader, Tab, TabList, TabPanel, Tabs } from "@app/components/v2"; -import { ProjectPermissionActions, ProjectPermissionSub, useWorkspace } from "@app/context"; -import { withProjectPermission } from "@app/hoc"; +import { useWorkspace } from "@app/context"; import { ProjectType } from "@app/hooks/api/workspace/types"; import { ProjectAccessControlTabs } from "@app/types/project"; @@ -16,73 +15,67 @@ import { ServiceTokenTab } from "./components"; -const Page = withProjectPermission( - () => { - const navigate = useNavigate(); - const { currentWorkspace } = useWorkspace(); - const selectedTab = useSearch({ - strict: false, - select: (el) => el.selectedTab +const Page = () => { + const navigate = useNavigate(); + const { currentWorkspace } = useWorkspace(); + const selectedTab = useSearch({ + strict: false, + select: (el) => el.selectedTab + }); + + const updateSelectedTab = (tab: string) => { + navigate({ + to: `/${currentWorkspace.type}/$projectId/access-management` as const, + search: (prev) => ({ ...prev, selectedTab: tab }), + params: { + projectId: currentWorkspace.id + } }); + }; - const updateSelectedTab = (tab: string) => { - navigate({ - to: `/${currentWorkspace.type}/$projectId/access-management` as const, - search: (prev) => ({ ...prev, selectedTab: tab }), - params: { - projectId: currentWorkspace.id - } - }); - }; - - return ( -
-
- - - - Users - Groups - -
-

Machine Identities

-
-
- {currentWorkspace?.type === ProjectType.SecretManager && ( - Service Tokens - )} - Project Roles -
- - - - - - - - - + return ( +
+
+ + + + Users + Groups + +
+

Machine Identities

+
+
{currentWorkspace?.type === ProjectType.SecretManager && ( - - - + Service Tokens )} - - + Project Roles +
+ + + + + + + + + + {currentWorkspace?.type === ProjectType.SecretManager && ( + + -
-
+ )} + + + +
- ); - }, - { - action: ProjectPermissionActions.Read, - subject: ProjectPermissionSub.Member - } -); +
+ ); +}; export const AccessControlPage = () => { const { t } = useTranslation(); diff --git a/frontend/src/pages/project/AccessControlPage/components/GroupsTab/GroupsTab.tsx b/frontend/src/pages/project/AccessControlPage/components/GroupsTab/GroupsTab.tsx index e3f040375..4f155a552 100644 --- a/frontend/src/pages/project/AccessControlPage/components/GroupsTab/GroupsTab.tsx +++ b/frontend/src/pages/project/AccessControlPage/components/GroupsTab/GroupsTab.tsx @@ -1,17 +1,26 @@ import { motion } from "framer-motion"; +import { ProjectPermissionActions, ProjectPermissionSub } from "@app/context"; +import { withProjectPermission } from "@app/hoc"; + import { GroupsSection } from "./components"; -export const GroupsTab = () => { - return ( - - - - ); -}; +export const GroupsTab = withProjectPermission( + () => { + return ( + + + + ); + }, + { + action: ProjectPermissionActions.Read, + subject: ProjectPermissionSub.Groups + } +); diff --git a/frontend/src/pages/project/AccessControlPage/components/MembersTab/MembersTab.tsx b/frontend/src/pages/project/AccessControlPage/components/MembersTab/MembersTab.tsx index 6b5660c83..77a5ba827 100644 --- a/frontend/src/pages/project/AccessControlPage/components/MembersTab/MembersTab.tsx +++ b/frontend/src/pages/project/AccessControlPage/components/MembersTab/MembersTab.tsx @@ -1,17 +1,26 @@ import { motion } from "framer-motion"; +import { ProjectPermissionActions, ProjectPermissionSub } from "@app/context"; +import { withProjectPermission } from "@app/hoc"; + import { MembersSection } from "./components"; -export const MembersTab = () => { - return ( - - - - ); -}; +export const MembersTab = withProjectPermission( + () => { + return ( + + + + ); + }, + { + action: ProjectPermissionActions.Read, + subject: ProjectPermissionSub.Member + } +);