@@ -3,8 +3,7 @@ import { useTranslation } from "react-i18next";
3
3
import { useNavigate , useSearch } from "@tanstack/react-router" ;
4
4
5
5
import { PageHeader , Tab , TabList , TabPanel , Tabs } from "@app/components/v2" ;
6
- import { ProjectPermissionActions , ProjectPermissionSub , useWorkspace } from "@app/context" ;
7
- import { withProjectPermission } from "@app/hoc" ;
6
+ import { useWorkspace } from "@app/context" ;
8
7
import { ProjectType } from "@app/hooks/api/workspace/types" ;
9
8
import { ProjectAccessControlTabs } from "@app/types/project" ;
10
9
@@ -16,73 +15,67 @@ import {
16
15
ServiceTokenTab
17
16
} from "./components" ;
18
17
19
- const Page = withProjectPermission (
20
- ( ) => {
21
- const navigate = useNavigate ( ) ;
22
- const { currentWorkspace } = useWorkspace ( ) ;
23
- const selectedTab = useSearch ( {
24
- strict : false ,
25
- select : ( el ) => el . selectedTab
26
- } ) ;
18
+ const Page = ( ) => {
19
+ const navigate = useNavigate ( ) ;
20
+ const { currentWorkspace } = useWorkspace ( ) ;
21
+ const selectedTab = useSearch ( {
22
+ strict : false ,
23
+ select : ( el ) => el . selectedTab
24
+ } ) ;
27
25
28
- const updateSelectedTab = ( tab : string ) => {
29
- navigate ( {
30
- to : `/${ currentWorkspace . type } /$projectId/access-management` as const ,
31
- search : ( prev ) => ( { ...prev , selectedTab : tab } ) ,
32
- params : {
33
- projectId : currentWorkspace . id
34
- }
35
- } ) ;
36
- } ;
26
+ const updateSelectedTab = ( tab : string ) => {
27
+ navigate ( {
28
+ to : `/${ currentWorkspace . type } /$projectId/access-management` as const ,
29
+ search : ( prev ) => ( { ...prev , selectedTab : tab } ) ,
30
+ params : {
31
+ projectId : currentWorkspace . id
32
+ }
33
+ } ) ;
34
+ } ;
37
35
38
- return (
39
- < div className = "container mx-auto flex flex-col justify-between bg-bunker-800 text-white" >
40
- < div className = "mx-auto mb-6 w-full max-w-7xl" >
41
- < PageHeader
42
- title = "Access Control"
43
- description = "Manage fine-grained access for users, groups, roles, and identities within your project resources."
44
- />
45
- < Tabs value = { selectedTab } onValueChange = { updateSelectedTab } >
46
- < TabList >
47
- < Tab value = { ProjectAccessControlTabs . Member } > Users</ Tab >
48
- < Tab value = { ProjectAccessControlTabs . Groups } > Groups</ Tab >
49
- < Tab value = { ProjectAccessControlTabs . Identities } >
50
- < div className = "flex items-center" >
51
- < p > Machine Identities</ p >
52
- </ div >
53
- </ Tab >
54
- { currentWorkspace ?. type === ProjectType . SecretManager && (
55
- < Tab value = { ProjectAccessControlTabs . ServiceTokens } > Service Tokens</ Tab >
56
- ) }
57
- < Tab value = { ProjectAccessControlTabs . Roles } > Project Roles</ Tab >
58
- </ TabList >
59
- < TabPanel value = { ProjectAccessControlTabs . Member } >
60
- < MembersTab />
61
- </ TabPanel >
62
- < TabPanel value = { ProjectAccessControlTabs . Groups } >
63
- < GroupsTab />
64
- </ TabPanel >
65
- < TabPanel value = { ProjectAccessControlTabs . Identities } >
66
- < IdentityTab />
67
- </ TabPanel >
36
+ return (
37
+ < div className = "container mx-auto flex flex-col justify-between bg-bunker-800 text-white" >
38
+ < div className = "mx-auto mb-6 w-full max-w-7xl" >
39
+ < PageHeader
40
+ title = "Access Control"
41
+ description = "Manage fine-grained access for users, groups, roles, and identities within your project resources."
42
+ />
43
+ < Tabs value = { selectedTab } onValueChange = { updateSelectedTab } >
44
+ < TabList >
45
+ < Tab value = { ProjectAccessControlTabs . Member } > Users</ Tab >
46
+ < Tab value = { ProjectAccessControlTabs . Groups } > Groups</ Tab >
47
+ < Tab value = { ProjectAccessControlTabs . Identities } >
48
+ < div className = "flex items-center" >
49
+ < p > Machine Identities</ p >
50
+ </ div >
51
+ </ Tab >
68
52
{ currentWorkspace ?. type === ProjectType . SecretManager && (
69
- < TabPanel value = { ProjectAccessControlTabs . ServiceTokens } >
70
- < ServiceTokenTab />
71
- </ TabPanel >
53
+ < Tab value = { ProjectAccessControlTabs . ServiceTokens } > Service Tokens</ Tab >
72
54
) }
73
- < TabPanel value = { ProjectAccessControlTabs . Roles } >
74
- < ProjectRoleListTab />
55
+ < Tab value = { ProjectAccessControlTabs . Roles } > Project Roles</ Tab >
56
+ </ TabList >
57
+ < TabPanel value = { ProjectAccessControlTabs . Member } >
58
+ < MembersTab />
59
+ </ TabPanel >
60
+ < TabPanel value = { ProjectAccessControlTabs . Groups } >
61
+ < GroupsTab />
62
+ </ TabPanel >
63
+ < TabPanel value = { ProjectAccessControlTabs . Identities } >
64
+ < IdentityTab />
65
+ </ TabPanel >
66
+ { currentWorkspace ?. type === ProjectType . SecretManager && (
67
+ < TabPanel value = { ProjectAccessControlTabs . ServiceTokens } >
68
+ < ServiceTokenTab />
75
69
</ TabPanel >
76
- </ Tabs >
77
- </ div >
70
+ ) }
71
+ < TabPanel value = { ProjectAccessControlTabs . Roles } >
72
+ < ProjectRoleListTab />
73
+ </ TabPanel >
74
+ </ Tabs >
78
75
</ div >
79
- ) ;
80
- } ,
81
- {
82
- action : ProjectPermissionActions . Read ,
83
- subject : ProjectPermissionSub . Member
84
- }
85
- ) ;
76
+ </ div >
77
+ ) ;
78
+ } ;
86
79
87
80
export const AccessControlPage = ( ) => {
88
81
const { t } = useTranslation ( ) ;
0 commit comments