feat: added project settings and access management

This commit is contained in:
=
2025-07-02 01:16:48 +05:30
parent d82d22a198
commit b0c1c9ce26
39 changed files with 419 additions and 1711 deletions
@@ -1,44 +0,0 @@
import {
createFileRoute,
linkOptions,
stripSearchParams,
} from '@tanstack/react-router'
import { zodValidator } from '@tanstack/zod-adapter'
import { z } from 'zod'
import { ProjectAccessControlTabs } from '@app/types/project'
import { AccessControlPage } from './AccessControlPage'
const AccessControlPageQuerySchema = z.object({
selectedTab: z
.nativeEnum(ProjectAccessControlTabs)
.catch(ProjectAccessControlTabs.Member),
requesterEmail: z.string().catch(''),
})
export const Route = createFileRoute(
'/_authenticate/_inject-org-details/_org-layout/projects/$projectId/_project-layout/cert-manager/_cert-manager-layout/access-management',
)({
component: AccessControlPage,
validateSearch: zodValidator(AccessControlPageQuerySchema),
search: {
middlewares: [stripSearchParams({ requesterEmail: '' })],
},
beforeLoad: ({ context, params }) => {
return {
breadcrumbs: [
...context.breadcrumbs,
{
label: 'Access Control',
link: linkOptions({
to: '/cert-manager/$projectId/access-management',
params: {
projectId: params.projectId,
},
}),
},
],
}
},
})
@@ -1,44 +0,0 @@
import {
createFileRoute,
linkOptions,
stripSearchParams,
} from '@tanstack/react-router'
import { zodValidator } from '@tanstack/zod-adapter'
import { z } from 'zod'
import { ProjectAccessControlTabs } from '@app/types/project'
import { AccessControlPage } from './AccessControlPage'
const AccessControlPageQuerySchema = z.object({
selectedTab: z
.nativeEnum(ProjectAccessControlTabs)
.catch(ProjectAccessControlTabs.Member),
requesterEmail: z.string().catch(''),
})
export const Route = createFileRoute(
'/_authenticate/_inject-org-details/_org-layout/projects/$projectId/_project-layout/kms/_kms-layout/access-management',
)({
component: AccessControlPage,
validateSearch: zodValidator(AccessControlPageQuerySchema),
search: {
middlewares: [stripSearchParams({ requesterEmail: '' })],
},
beforeLoad: ({ context, params }) => {
return {
breadcrumbs: [
...context.breadcrumbs,
{
label: 'Access Control',
link: linkOptions({
to: '/kms/$projectId/access-management',
params: {
projectId: params.projectId,
},
}),
},
],
}
},
})
@@ -1,44 +0,0 @@
import {
createFileRoute,
linkOptions,
stripSearchParams,
} from '@tanstack/react-router'
import { zodValidator } from '@tanstack/zod-adapter'
import { z } from 'zod'
import { ProjectAccessControlTabs } from '@app/types/project'
import { AccessControlPage } from './AccessControlPage'
const AccessControlPageQuerySchema = z.object({
selectedTab: z
.nativeEnum(ProjectAccessControlTabs)
.catch(ProjectAccessControlTabs.Member),
requesterEmail: z.string().catch(''),
})
export const Route = createFileRoute(
'/_authenticate/_inject-org-details/_org-layout/projects/$projectId/_project-layout/secret-manager/_secret-manager-layout/access-management',
)({
component: AccessControlPage,
validateSearch: zodValidator(AccessControlPageQuerySchema),
search: {
middlewares: [stripSearchParams({ requesterEmail: '' })],
},
beforeLoad: ({ context, params }) => {
return {
breadcrumbs: [
...context.breadcrumbs,
{
label: 'Access Control',
link: linkOptions({
to: '/secret-manager/$projectId/access-management',
params: {
projectId: params.projectId,
},
}),
},
],
}
},
})
@@ -1,44 +0,0 @@
import {
createFileRoute,
linkOptions,
stripSearchParams,
} from '@tanstack/react-router'
import { zodValidator } from '@tanstack/zod-adapter'
import { z } from 'zod'
import { ProjectAccessControlTabs } from '@app/types/project'
import { AccessControlPage } from './AccessControlPage'
const AccessControlPageQuerySchema = z.object({
selectedTab: z
.nativeEnum(ProjectAccessControlTabs)
.catch(ProjectAccessControlTabs.Member),
requesterEmail: z.string().catch(''),
})
export const Route = createFileRoute(
'/_authenticate/_inject-org-details/_org-layout/projects/$projectId/_project-layout/secret-scanning/_secret-scanning-layout/access-management',
)({
component: AccessControlPage,
validateSearch: zodValidator(AccessControlPageQuerySchema),
search: {
middlewares: [stripSearchParams({ requesterEmail: '' })],
},
beforeLoad: ({ context, params }) => {
return {
breadcrumbs: [
...context.breadcrumbs,
{
label: 'Access Control',
link: linkOptions({
to: '/secret-scanning/$projectId/access-management',
params: {
projectId: params.projectId,
},
}),
},
],
}
},
})
@@ -1,36 +0,0 @@
import { createFileRoute, linkOptions } from '@tanstack/react-router'
import { zodValidator } from '@tanstack/zod-adapter'
import { z } from 'zod'
import { ProjectAccessControlTabs } from '@app/types/project'
import { AccessControlPage } from './AccessControlPage'
const AccessControlPageQuerySchema = z.object({
selectedTab: z
.nativeEnum(ProjectAccessControlTabs)
.catch(ProjectAccessControlTabs.Member),
})
export const Route = createFileRoute(
'/_authenticate/_inject-org-details/_org-layout/projects/$projectId/_project-layout/ssh/_ssh-layout/access-management',
)({
component: AccessControlPage,
validateSearch: zodValidator(AccessControlPageQuerySchema),
beforeLoad: ({ context, params }) => {
return {
breadcrumbs: [
...context.breadcrumbs,
{
label: 'Access Control',
link: linkOptions({
to: '/ssh/$projectId/access-management',
params: {
projectId: params.projectId,
},
}),
},
],
}
},
})
@@ -0,0 +1,27 @@
import { createFileRoute, stripSearchParams } from "@tanstack/react-router";
import { zodValidator } from "@tanstack/zod-adapter";
import { z } from "zod";
import { ProjectAccessControlTabs } from "@app/types/project";
import { AccessControlPage } from "./AccessControlPage";
const AccessControlPageQuerySchema = z.object({
selectedTab: z.nativeEnum(ProjectAccessControlTabs).catch(ProjectAccessControlTabs.Member),
requesterEmail: z.string().catch("")
});
export const Route = createFileRoute(
"/_authenticate/_inject-org-details/_org-layout/projects/$projectId/_project-layout/_project-general-layout/access-management"
)({
component: AccessControlPage,
validateSearch: zodValidator(AccessControlPageQuerySchema),
search: {
middlewares: [stripSearchParams({ requesterEmail: "" })]
},
beforeLoad: ({ context }) => {
return {
breadcrumbs: []
};
}
});