diff --git a/frontend/src/helpers/project.ts b/frontend/src/helpers/project.ts
index c1194b18a..6db97f995 100644
--- a/frontend/src/helpers/project.ts
+++ b/frontend/src/helpers/project.ts
@@ -42,7 +42,8 @@ export const initProjectHelper = async ({ projectName }: { projectName: string }
const {
data: { project }
} = await createWorkspace({
- projectName
+ projectName,
+ type: ProjectType.SecretManager
});
try {
diff --git a/frontend/src/layouts/KmsLayout/KmsLayout.tsx b/frontend/src/layouts/KmsLayout/KmsLayout.tsx
index b6b212154..dbe1192f7 100644
--- a/frontend/src/layouts/KmsLayout/KmsLayout.tsx
+++ b/frontend/src/layouts/KmsLayout/KmsLayout.tsx
@@ -4,10 +4,13 @@ import { Link, Outlet } from "@tanstack/react-router";
import { motion } from "framer-motion";
import { Lottie, Menu, MenuGroup, MenuItem } from "@app/components/v2";
-import { useWorkspace } from "@app/context";
+import { useProjectPermission, useWorkspace } from "@app/context";
+
+import { AssumePrivilegeModeBanner } from "../ProjectLayout/components/AssumePrivilegeModeBanner";
export const KmsLayout = () => {
const { currentWorkspace } = useWorkspace();
+ const { assumedPrivilegeDetails } = useProjectPermission();
return (
@@ -120,6 +123,7 @@ export const KmsLayout = () => {
+ {assumedPrivilegeDetails &&
}
diff --git a/frontend/src/layouts/PkiManagerLayout/PkiManagerLayout.tsx b/frontend/src/layouts/PkiManagerLayout/PkiManagerLayout.tsx
index f8f7a4d86..cf9f22580 100644
--- a/frontend/src/layouts/PkiManagerLayout/PkiManagerLayout.tsx
+++ b/frontend/src/layouts/PkiManagerLayout/PkiManagerLayout.tsx
@@ -15,10 +15,13 @@ import { Link, Outlet } from "@tanstack/react-router";
import { motion } from "framer-motion";
import { Lottie, Menu, MenuGroup, MenuItem } from "@app/components/v2";
-import { useWorkspace } from "@app/context";
+import { useProjectPermission, useWorkspace } from "@app/context";
+
+import { AssumePrivilegeModeBanner } from "../ProjectLayout/components/AssumePrivilegeModeBanner";
export const PkiManagerLayout = () => {
const { currentWorkspace } = useWorkspace();
+ const { assumedPrivilegeDetails } = useProjectPermission();
const { t } = useTranslation();
return (
@@ -184,6 +187,7 @@ export const PkiManagerLayout = () => {
+ {assumedPrivilegeDetails &&
}
diff --git a/frontend/src/layouts/ProjectGeneralLayout/ProjectGeneralLayout.tsx b/frontend/src/layouts/ProjectGeneralLayout/ProjectGeneralLayout.tsx
deleted file mode 100644
index f2343eb66..000000000
--- a/frontend/src/layouts/ProjectGeneralLayout/ProjectGeneralLayout.tsx
+++ /dev/null
@@ -1,53 +0,0 @@
-import { Link, Outlet } from "@tanstack/react-router";
-import { motion } from "framer-motion";
-
-import { Menu, MenuItem } from "@app/components/v2";
-import { useWorkspace } from "@app/context";
-
-export const ProjectGeneralLayout = () => {
- const { currentWorkspace } = useWorkspace();
-
- return (
-
-
-
-
-
-
-
-
-
-
- );
-};
diff --git a/frontend/src/layouts/ProjectGeneralLayout/index.tsx b/frontend/src/layouts/ProjectGeneralLayout/index.tsx
deleted file mode 100644
index d048fbebc..000000000
--- a/frontend/src/layouts/ProjectGeneralLayout/index.tsx
+++ /dev/null
@@ -1 +0,0 @@
-export { ProjectGeneralLayout } from "./ProjectGeneralLayout";
diff --git a/frontend/src/layouts/ProjectLayout/ProjectLayout.tsx b/frontend/src/layouts/ProjectLayout/ProjectLayout.tsx
deleted file mode 100644
index a5345b409..000000000
--- a/frontend/src/layouts/ProjectLayout/ProjectLayout.tsx
+++ /dev/null
@@ -1,68 +0,0 @@
-import { useTranslation } from "react-i18next";
-import { faDotCircle, faMobile, faWindowMaximize } from "@fortawesome/free-solid-svg-icons";
-import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
-import { Link, Outlet, useLocation } from "@tanstack/react-router";
-import { motion } from "framer-motion";
-import { twMerge } from "tailwind-merge";
-
-import { ShouldWrap } from "@app/components/utilities/ShouldWrapComponent";
-import {
- Divider,
- DropdownMenu,
- DropdownMenuContent,
- DropdownMenuItem,
- DropdownMenuTrigger,
- Lottie,
- Menu,
- MenuItem,
- Tooltip
-} from "@app/components/v2";
-import { useProjectPermission, useWorkspace } from "@app/context";
-import { getCurrentProductFromUrl } from "@app/helpers/project";
-import { useLocalStorageState } from "@app/hooks";
-import { ProjectType } from "@app/hooks/api/workspace/types";
-
-import { AssumePrivilegeModeBanner } from "./components/AssumePrivilegeModeBanner";
-
-enum SidebarStyle {
- Expanded = "expanded",
- Collapsed = "collapsed",
- ExpandOnHover = "expand-on-hover"
-}
-const MIN_SIDEBAR_SIZE = "55px";
-const MAX_SIDEBAR_SIZE = "220px";
-// This is a generic layout shared by all types of projects.
-// If the product layout differs significantly, create a new layout as needed.
-export const ProjectLayout = () => {
- const location = useLocation();
-
- const { t } = useTranslation();
- const { assumedPrivilegeDetails } = useProjectPermission();
-
- const currentProductType = getCurrentProductFromUrl(location.pathname);
-
- return (
- <>
-
-
-
- {assumedPrivilegeDetails &&
}
-
-
-
-
-
-
-
- {` ${t("common.no-mobile")} `}
-
-
- >
- );
-};
diff --git a/frontend/src/layouts/ProjectLayout/components/AssumePrivilegeModeBanner/AssumePrivilegeModeBanner.tsx b/frontend/src/layouts/ProjectLayout/components/AssumePrivilegeModeBanner/AssumePrivilegeModeBanner.tsx
index 52882ba6d..2b4fcff80 100644
--- a/frontend/src/layouts/ProjectLayout/components/AssumePrivilegeModeBanner/AssumePrivilegeModeBanner.tsx
+++ b/frontend/src/layouts/ProjectLayout/components/AssumePrivilegeModeBanner/AssumePrivilegeModeBanner.tsx
@@ -3,10 +3,9 @@ import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { Button } from "@app/components/v2";
import { useProjectPermission, useWorkspace } from "@app/context";
-import { getCurrentProductFromUrl, getProjectHomePage } from "@app/helpers/project";
+import { getProjectHomePage } from "@app/helpers/project";
import { useRemoveAssumeProjectPrivilege } from "@app/hooks/api";
import { ActorType } from "@app/hooks/api/auditLogs/enums";
-import { ProjectType } from "@app/hooks/api/workspace/types";
export const AssumePrivilegeModeBanner = () => {
const { currentWorkspace } = useWorkspace();
@@ -37,10 +36,7 @@ export const AssumePrivilegeModeBanner = () => {
},
{
onSuccess: () => {
- const url = getProjectHomePage(
- getCurrentProductFromUrl(window.location.href) || ProjectType.SecretManager
- );
-
+ const url = getProjectHomePage(currentWorkspace.type);
window.location.href = url.replace("$projectId", currentWorkspace.id);
}
}
diff --git a/frontend/src/layouts/ProjectLayout/components/MenuIconButton/Copy.tsx b/frontend/src/layouts/ProjectLayout/components/MenuIconButton/Copy.tsx
deleted file mode 100644
index f7c30c883..000000000
--- a/frontend/src/layouts/ProjectLayout/components/MenuIconButton/Copy.tsx
+++ /dev/null
@@ -1,121 +0,0 @@
-import { ComponentPropsWithRef, ElementType, useRef } from "react";
-import { DotLottie, DotLottieReact } from "@lottiefiles/dotlottie-react";
-import { twMerge } from "tailwind-merge";
-
-import { MenuItemProps } from "@app/components/v2";
-
-export const MenuIconButton = ({
- children,
- icon,
- className,
- isDisabled,
- isSelected,
- as: Item = "div",
- description,
- // wrapping in forward ref with generic component causes the loss of ts definitions on props
- inputRef,
- lottieIconMode = "forward",
- ...props
-}: MenuItemProps &
- ComponentPropsWithRef & { lottieIconMode?: "reverse" | "forward" }): JSX.Element => {
- const iconRef = useRef(null);
- return (
-
-
- iconRef.current?.play()}
- onMouseLeave={() => iconRef.current?.stop()}
- ref={inputRef}
- {...props}
- >
-
- {icon && (
-
- {
- iconRef.current = el;
- }}
- src={`/lotties/${icon}.json`}
- loop
- className="h-full w-full"
- mode={lottieIconMode}
- />
-
- )}
-
- {children}
-
-
-
- );
-};
-
-// export const MenuIconButton = ({
-// children,
-// icon,
-// className,
-// isDisabled,
-// isSelected,
-// as: Item = "div",
-// description,
-// // wrapping in forward ref with generic component causes the loss of ts definitions on props
-// inputRef,
-// lottieIconMode = "forward",
-// ...props
-// }: MenuItemProps &
-// ComponentPropsWithRef & { lottieIconMode?: "reverse" | "forward" }): JSX.Element => {
-// const iconRef = useRef(null);
-// return (
-//
-//
- iconRef.current?.play()}
-// onMouseLeave={() => iconRef.current?.stop()}
-// ref={inputRef}
-// {...props}
-// >
-//
-// {icon && (
-//
-// {
-// iconRef.current = el;
-// }}
-// src={`/lotties/${icon}.json`}
-// loop
-// className="h-full w-full"
-// mode={lottieIconMode}
-// />
-//
-// )}
-//
-// {children}
-//
-//
-//
-// );
-// };
diff --git a/frontend/src/layouts/ProjectLayout/components/MenuIconButton/MenuIconButton.tsx b/frontend/src/layouts/ProjectLayout/components/MenuIconButton/MenuIconButton.tsx
deleted file mode 100644
index bff09423c..000000000
--- a/frontend/src/layouts/ProjectLayout/components/MenuIconButton/MenuIconButton.tsx
+++ /dev/null
@@ -1,65 +0,0 @@
-import { ComponentPropsWithRef, ElementType, useRef } from "react";
-import { DotLottie, DotLottieReact } from "@lottiefiles/dotlottie-react";
-import { twMerge } from "tailwind-merge";
-
-import { MenuItemProps } from "@app/components/v2";
-
-export const MenuIconButton = ({
- children,
- icon,
- className,
- isDisabled,
- isSelected,
- as: Item = "div",
- description,
- // wrapping in forward ref with generic component causes the loss of ts definitions on props
- inputRef,
- lottieIconMode = "forward",
- ...props
-}: MenuItemProps &
- ComponentPropsWithRef & { lottieIconMode?: "reverse" | "forward" }): JSX.Element => {
- const iconRef = useRef(null);
- return (
-
-
- iconRef.current?.play()}
- onMouseLeave={() => iconRef.current?.stop()}
- ref={inputRef}
- {...props}
- >
-
- {icon && (
-
- {
- iconRef.current = el;
- }}
- src={`/lotties/${icon}.json`}
- loop
- className="h-full w-full"
- mode={lottieIconMode}
- />
-
- )}
-
- {children}
-
-
-
- );
-};
diff --git a/frontend/src/layouts/ProjectLayout/components/MenuIconButton/index.tsx b/frontend/src/layouts/ProjectLayout/components/MenuIconButton/index.tsx
deleted file mode 100644
index 6655c7091..000000000
--- a/frontend/src/layouts/ProjectLayout/components/MenuIconButton/index.tsx
+++ /dev/null
@@ -1 +0,0 @@
-export { MenuIconButton } from "./MenuIconButton";
diff --git a/frontend/src/layouts/ProjectLayout/components/SidebarHeader/SidebarHeader.tsx b/frontend/src/layouts/ProjectLayout/components/SidebarHeader/SidebarHeader.tsx
deleted file mode 100644
index dc74fdad5..000000000
--- a/frontend/src/layouts/ProjectLayout/components/SidebarHeader/SidebarHeader.tsx
+++ /dev/null
@@ -1,179 +0,0 @@
-import {
- faAngleDown,
- faArrowLeft,
- faArrowUpRightFromSquare,
- faCheck
-} from "@fortawesome/free-solid-svg-icons";
-import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
-import { Link, useNavigate } from "@tanstack/react-router";
-
-import {
- Button,
- DropdownMenu,
- DropdownMenuContent,
- DropdownMenuItem,
- DropdownMenuTrigger
-} from "@app/components/v2";
-import { useOrganization, useUser } from "@app/context";
-import { useGetOrganizations, useLogoutUser } from "@app/hooks/api";
-import { AuthMethod } from "@app/hooks/api/users/types";
-
-type Prop = {
- onChangeOrg: (orgId: string) => void;
-};
-
-export const SidebarHeader = ({ onChangeOrg }: Prop) => {
- const { currentOrg } = useOrganization();
- const { user } = useUser();
- const navigate = useNavigate();
- const { data: orgs } = useGetOrganizations();
-
- const logout = useLogoutUser();
- const logOutUser = async () => {
- try {
- console.log("Logging out...");
- await logout.mutateAsync();
- navigate({ to: "/login" });
- } catch (error) {
- console.error(error);
- }
- };
-
- return (
-
-
-
-
-
-
-
-
-
-
- {currentOrg?.name.charAt(0)}
-
-
- {currentOrg?.name}
-
-
-
-
-
- {user?.username}
- {orgs?.map((org) => {
- return (
-
-
-
- );
- })}
-
-
-
-
-
-
-
-
- {user?.firstName?.charAt(0)}
- {user?.lastName && user?.lastName?.charAt(0)}
-
-
-
- {user?.username}
-
- Personal Settings
-
-
-
- Documentation
-
-
-
-
-
- Join Slack Community
-
-
-
- {user?.superAdmin && (
-
-
- Server Admin Console
-
-
- )}
-
-
- Organization Admin Console
-
-
-
-
-
-
-
- );
-};
diff --git a/frontend/src/layouts/ProjectLayout/components/SidebarHeader/index.tsx b/frontend/src/layouts/ProjectLayout/components/SidebarHeader/index.tsx
deleted file mode 100644
index bdc4db6ef..000000000
--- a/frontend/src/layouts/ProjectLayout/components/SidebarHeader/index.tsx
+++ /dev/null
@@ -1 +0,0 @@
-export { SidebarHeader } from "./SidebarHeader";
diff --git a/frontend/src/layouts/ProjectLayout/index.tsx b/frontend/src/layouts/ProjectLayout/index.tsx
deleted file mode 100644
index ab759db95..000000000
--- a/frontend/src/layouts/ProjectLayout/index.tsx
+++ /dev/null
@@ -1 +0,0 @@
-export { ProjectLayout } from "./ProjectLayout";
diff --git a/frontend/src/layouts/SecretManagerLayout/SecretManagerLayout.tsx b/frontend/src/layouts/SecretManagerLayout/SecretManagerLayout.tsx
index 7db007d6e..7a1eb932a 100644
--- a/frontend/src/layouts/SecretManagerLayout/SecretManagerLayout.tsx
+++ b/frontend/src/layouts/SecretManagerLayout/SecretManagerLayout.tsx
@@ -14,15 +14,18 @@ import { Link, Outlet } from "@tanstack/react-router";
import { motion } from "framer-motion";
import { Badge, Lottie, Menu, MenuGroup, MenuItem } from "@app/components/v2";
-import { useWorkspace } from "@app/context";
+import { useProjectPermission, useWorkspace } from "@app/context";
import {
useGetAccessRequestsCount,
useGetSecretApprovalRequestCount,
useGetSecretRotations
} from "@app/hooks/api";
+import { AssumePrivilegeModeBanner } from "../ProjectLayout/components/AssumePrivilegeModeBanner";
+
export const SecretManagerLayout = () => {
const { currentWorkspace } = useWorkspace();
+ const { assumedPrivilegeDetails } = useProjectPermission();
const { t } = useTranslation();
const workspaceId = currentWorkspace?.id || "";
@@ -202,6 +205,7 @@ export const SecretManagerLayout = () => {
+ {assumedPrivilegeDetails &&
}
diff --git a/frontend/src/layouts/SecretScanningLayout/SecretScanningLayout.tsx b/frontend/src/layouts/SecretScanningLayout/SecretScanningLayout.tsx
index 81252eeb6..9fba9b823 100644
--- a/frontend/src/layouts/SecretScanningLayout/SecretScanningLayout.tsx
+++ b/frontend/src/layouts/SecretScanningLayout/SecretScanningLayout.tsx
@@ -10,10 +10,13 @@ import { Link, Outlet } from "@tanstack/react-router";
import { motion } from "framer-motion";
import { Lottie, Menu, MenuGroup, MenuItem } from "@app/components/v2";
-import { useWorkspace } from "@app/context";
+import { useProjectPermission, useWorkspace } from "@app/context";
+
+import { AssumePrivilegeModeBanner } from "../ProjectLayout/components/AssumePrivilegeModeBanner";
export const SecretScanningLayout = () => {
const { currentWorkspace } = useWorkspace();
+ const { assumedPrivilegeDetails } = useProjectPermission();
return (
@@ -126,6 +129,7 @@ export const SecretScanningLayout = () => {
+ {assumedPrivilegeDetails &&
}
diff --git a/frontend/src/layouts/SshLayout/SshLayout.tsx b/frontend/src/layouts/SshLayout/SshLayout.tsx
index f1a93641c..50ce87af9 100644
--- a/frontend/src/layouts/SshLayout/SshLayout.tsx
+++ b/frontend/src/layouts/SshLayout/SshLayout.tsx
@@ -5,10 +5,18 @@ import { motion } from "framer-motion";
import { ProjectPermissionCan } from "@app/components/permissions";
import { Lottie, Menu, MenuGroup, MenuItem } from "@app/components/v2";
-import { ProjectPermissionActions, ProjectPermissionSub, useWorkspace } from "@app/context";
+import {
+ ProjectPermissionActions,
+ ProjectPermissionSub,
+ useProjectPermission,
+ useWorkspace
+} from "@app/context";
+
+import { AssumePrivilegeModeBanner } from "../ProjectLayout/components/AssumePrivilegeModeBanner";
export const SshLayout = () => {
const { currentWorkspace } = useWorkspace();
+ const { assumedPrivilegeDetails } = useProjectPermission();
return (
@@ -131,6 +139,7 @@ export const SshLayout = () => {
+ {assumedPrivilegeDetails &&
}
diff --git a/frontend/src/pages/project/AccessControlPage/route.tsx b/frontend/src/pages/project/AccessControlPage/route.tsx
deleted file mode 100644
index 4b51fdecb..000000000
--- a/frontend/src/pages/project/AccessControlPage/route.tsx
+++ /dev/null
@@ -1,32 +0,0 @@
-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: [
- ...context.breadcrumbs,
- {
- label: "Access Control"
- }
- ]
- };
- }
-});
diff --git a/frontend/src/pages/project/GroupDetailsByIDPage/components/GroupMembersSection/GroupMembersTable.tsx b/frontend/src/pages/project/GroupDetailsByIDPage/components/GroupMembersSection/GroupMembersTable.tsx
index 681deea42..bcffb428f 100644
--- a/frontend/src/pages/project/GroupDetailsByIDPage/components/GroupMembersSection/GroupMembersTable.tsx
+++ b/frontend/src/pages/project/GroupDetailsByIDPage/components/GroupMembersSection/GroupMembersTable.tsx
@@ -24,7 +24,7 @@ import {
Tr
} from "@app/components/v2";
import { useWorkspace } from "@app/context";
-import { getCurrentProductFromUrl, getProjectHomePage } from "@app/helpers/project";
+import { getProjectHomePage } from "@app/helpers/project";
import {
getUserTablePreference,
PreferenceKey,
@@ -36,7 +36,6 @@ import { ActorType } from "@app/hooks/api/auditLogs/enums";
import { OrderByDirection } from "@app/hooks/api/generic/types";
import { useListProjectGroupUsers } from "@app/hooks/api/groups/queries";
import { EFilterReturnedUsers, TGroupMembership } from "@app/hooks/api/groups/types";
-import { ProjectType } from "@app/hooks/api/workspace/types";
import { GroupMembershipRow } from "./GroupMembershipRow";
@@ -137,9 +136,7 @@ export const GroupMembersTable = ({ groupMembership }: Props) => {
text: "User privilege assumption has started"
});
- const url = getProjectHomePage(
- getCurrentProductFromUrl(window.location.href) || ProjectType.SecretManager
- );
+ const url = getProjectHomePage(currentWorkspace.type);
window.location.href = url.replace("$projectId", currentWorkspace.id);
}
}
diff --git a/frontend/src/pages/project/GroupDetailsByIDPage/route-cert-manager.tsx b/frontend/src/pages/project/GroupDetailsByIDPage/route-cert-manager.tsx
index 4f8736482..cbf6e0072 100644
--- a/frontend/src/pages/project/GroupDetailsByIDPage/route-cert-manager.tsx
+++ b/frontend/src/pages/project/GroupDetailsByIDPage/route-cert-manager.tsx
@@ -15,7 +15,7 @@ export const Route = createFileRoute(
{
label: "Access Control",
link: linkOptions({
- to: "/projects/$projectId/access-management",
+ to: "/projects/cert-management/$projectId/access-management",
params: {
projectId: params.projectId
},
diff --git a/frontend/src/pages/project/GroupDetailsByIDPage/route-kms.tsx b/frontend/src/pages/project/GroupDetailsByIDPage/route-kms.tsx
index 3167bdb5c..c0dd210c1 100644
--- a/frontend/src/pages/project/GroupDetailsByIDPage/route-kms.tsx
+++ b/frontend/src/pages/project/GroupDetailsByIDPage/route-kms.tsx
@@ -15,7 +15,7 @@ export const Route = createFileRoute(
{
label: "Access Control",
link: linkOptions({
- to: "/projects/$projectId/access-management",
+ to: "/projects/kms/$projectId/access-management",
params: {
projectId: params.projectId
},
diff --git a/frontend/src/pages/project/GroupDetailsByIDPage/route-secret-manager.tsx b/frontend/src/pages/project/GroupDetailsByIDPage/route-secret-manager.tsx
index d68c50c0e..01349a83b 100644
--- a/frontend/src/pages/project/GroupDetailsByIDPage/route-secret-manager.tsx
+++ b/frontend/src/pages/project/GroupDetailsByIDPage/route-secret-manager.tsx
@@ -15,7 +15,7 @@ export const Route = createFileRoute(
{
label: "Access Control",
link: linkOptions({
- to: "/projects/$projectId/access-management",
+ to: "/projects/secret-management/$projectId/access-management",
params: {
projectId: params.projectId
},
diff --git a/frontend/src/pages/project/GroupDetailsByIDPage/route-secret-scanning.tsx b/frontend/src/pages/project/GroupDetailsByIDPage/route-secret-scanning.tsx
index 92cbcff62..ed86d0b65 100644
--- a/frontend/src/pages/project/GroupDetailsByIDPage/route-secret-scanning.tsx
+++ b/frontend/src/pages/project/GroupDetailsByIDPage/route-secret-scanning.tsx
@@ -15,7 +15,7 @@ export const Route = createFileRoute(
{
label: "Access Control",
link: linkOptions({
- to: "/projects/$projectId/access-management",
+ to: "/projects/secret-scanning/$projectId/access-management",
params: {
projectId: params.projectId
},
diff --git a/frontend/src/pages/project/GroupDetailsByIDPage/route-ssh.tsx b/frontend/src/pages/project/GroupDetailsByIDPage/route-ssh.tsx
index 0b3eefc8b..17427d706 100644
--- a/frontend/src/pages/project/GroupDetailsByIDPage/route-ssh.tsx
+++ b/frontend/src/pages/project/GroupDetailsByIDPage/route-ssh.tsx
@@ -15,7 +15,7 @@ export const Route = createFileRoute(
{
label: "Access Control",
link: linkOptions({
- to: "/projects/$projectId/access-management",
+ to: "/projects/ssh/$projectId/access-management",
params: {
projectId: params.projectId
},
diff --git a/frontend/src/pages/project/GroupDetailsByIDPage/route.tsx b/frontend/src/pages/project/GroupDetailsByIDPage/route.tsx
deleted file mode 100644
index 684e9fd87..000000000
--- a/frontend/src/pages/project/GroupDetailsByIDPage/route.tsx
+++ /dev/null
@@ -1,33 +0,0 @@
-import { createFileRoute, linkOptions } from "@tanstack/react-router";
-
-import { ProjectAccessControlTabs } from "@app/types/project";
-
-import { GroupDetailsByIDPage } from "./GroupDetailsByIDPage";
-
-export const Route = createFileRoute(
- "/_authenticate/_inject-org-details/_org-layout/projects/$projectId/_project-layout/_project-general-layout/groups/$groupId"
-)({
- component: GroupDetailsByIDPage,
- beforeLoad: ({ context, params }) => {
- return {
- breadcrumbs: [
- ...context.breadcrumbs,
- {
- label: "Access Control",
- link: linkOptions({
- to: "/projects/$projectId/access-management",
- params: {
- projectId: params.projectId
- },
- search: {
- selectedTab: ProjectAccessControlTabs.Groups
- }
- })
- },
- {
- label: "Group"
- }
- ]
- };
- }
-});
diff --git a/frontend/src/pages/project/IdentityDetailsByIDPage/route-cert-manager.tsx b/frontend/src/pages/project/IdentityDetailsByIDPage/route-cert-manager.tsx
index b0777d272..d6ef9aa73 100644
--- a/frontend/src/pages/project/IdentityDetailsByIDPage/route-cert-manager.tsx
+++ b/frontend/src/pages/project/IdentityDetailsByIDPage/route-cert-manager.tsx
@@ -15,7 +15,7 @@ export const Route = createFileRoute(
{
label: "Access Control",
link: linkOptions({
- to: "/projects/$projectId/access-management",
+ to: "/projects/cert-management/$projectId/access-management",
params: {
projectId: params.projectId
},
diff --git a/frontend/src/pages/project/IdentityDetailsByIDPage/route-kms.tsx b/frontend/src/pages/project/IdentityDetailsByIDPage/route-kms.tsx
index e6179f324..f4fb109e3 100644
--- a/frontend/src/pages/project/IdentityDetailsByIDPage/route-kms.tsx
+++ b/frontend/src/pages/project/IdentityDetailsByIDPage/route-kms.tsx
@@ -15,7 +15,7 @@ export const Route = createFileRoute(
{
label: "Access Control",
link: linkOptions({
- to: "/projects/$projectId/access-management",
+ to: "/projects/kms/$projectId/access-management",
params: {
projectId: params.projectId
},
diff --git a/frontend/src/pages/project/IdentityDetailsByIDPage/route-secret-manager.tsx b/frontend/src/pages/project/IdentityDetailsByIDPage/route-secret-manager.tsx
index f7a22dbfd..355428940 100644
--- a/frontend/src/pages/project/IdentityDetailsByIDPage/route-secret-manager.tsx
+++ b/frontend/src/pages/project/IdentityDetailsByIDPage/route-secret-manager.tsx
@@ -15,7 +15,7 @@ export const Route = createFileRoute(
{
label: "Access Control",
link: linkOptions({
- to: "/projects/$projectId/access-management",
+ to: "/projects/secret-management/$projectId/access-management",
params: {
projectId: params.projectId
},
diff --git a/frontend/src/pages/project/IdentityDetailsByIDPage/route-secret-scanning.tsx b/frontend/src/pages/project/IdentityDetailsByIDPage/route-secret-scanning.tsx
index 1ccf183ec..c5491bf72 100644
--- a/frontend/src/pages/project/IdentityDetailsByIDPage/route-secret-scanning.tsx
+++ b/frontend/src/pages/project/IdentityDetailsByIDPage/route-secret-scanning.tsx
@@ -15,7 +15,7 @@ export const Route = createFileRoute(
{
label: "Access Control",
link: linkOptions({
- to: "/projects/$projectId/access-management",
+ to: "/projects/secret-scanning/$projectId/access-management",
params: {
projectId: params.projectId
},
diff --git a/frontend/src/pages/project/IdentityDetailsByIDPage/route-ssh.tsx b/frontend/src/pages/project/IdentityDetailsByIDPage/route-ssh.tsx
index ddde97813..2a82c371f 100644
--- a/frontend/src/pages/project/IdentityDetailsByIDPage/route-ssh.tsx
+++ b/frontend/src/pages/project/IdentityDetailsByIDPage/route-ssh.tsx
@@ -15,7 +15,7 @@ export const Route = createFileRoute(
{
label: "Access Control",
link: linkOptions({
- to: "/projects/$projectId/access-management",
+ to: "/projects/ssh/$projectId/access-management",
params: {
projectId: params.projectId
},
diff --git a/frontend/src/pages/project/IdentityDetailsByIDPage/route.tsx b/frontend/src/pages/project/IdentityDetailsByIDPage/route.tsx
deleted file mode 100644
index 26bd99210..000000000
--- a/frontend/src/pages/project/IdentityDetailsByIDPage/route.tsx
+++ /dev/null
@@ -1,33 +0,0 @@
-import { createFileRoute, linkOptions } from "@tanstack/react-router";
-
-import { ProjectAccessControlTabs } from "@app/types/project";
-
-import { IdentityDetailsByIDPage } from "./IdentityDetailsByIDPage";
-
-export const Route = createFileRoute(
- "/_authenticate/_inject-org-details/_org-layout/projects/$projectId/_project-layout/_project-general-layout/identities/$identityId"
-)({
- component: IdentityDetailsByIDPage,
- beforeLoad: ({ context, params }) => {
- return {
- breadcrumbs: [
- ...context.breadcrumbs,
- {
- label: "Access Control",
- link: linkOptions({
- to: "/projects/$projectId/access-management",
- params: {
- projectId: params.projectId
- },
- search: {
- selectedTab: ProjectAccessControlTabs.Identities
- }
- })
- },
- {
- label: "Machine Identity"
- }
- ]
- };
- }
-});
diff --git a/frontend/src/pages/project/MemberDetailsByIDPage/route-cert-manager.tsx b/frontend/src/pages/project/MemberDetailsByIDPage/route-cert-manager.tsx
index b55368def..4946c2fe6 100644
--- a/frontend/src/pages/project/MemberDetailsByIDPage/route-cert-manager.tsx
+++ b/frontend/src/pages/project/MemberDetailsByIDPage/route-cert-manager.tsx
@@ -15,7 +15,7 @@ export const Route = createFileRoute(
{
label: "Access Control",
link: linkOptions({
- to: "/projects/$projectId/access-management",
+ to: "/projects/cert-management/$projectId/access-management",
params: {
projectId: params.projectId
},
diff --git a/frontend/src/pages/project/MemberDetailsByIDPage/route-kms.tsx b/frontend/src/pages/project/MemberDetailsByIDPage/route-kms.tsx
index 1ac3b4f4f..6628de005 100644
--- a/frontend/src/pages/project/MemberDetailsByIDPage/route-kms.tsx
+++ b/frontend/src/pages/project/MemberDetailsByIDPage/route-kms.tsx
@@ -15,7 +15,7 @@ export const Route = createFileRoute(
{
label: "Access Control",
link: linkOptions({
- to: "/projects/$projectId/access-management",
+ to: "/projects/kms/$projectId/access-management",
params: {
projectId: params.projectId
},
diff --git a/frontend/src/pages/project/MemberDetailsByIDPage/route-secret-manager.tsx b/frontend/src/pages/project/MemberDetailsByIDPage/route-secret-manager.tsx
index 88921d273..2114e5b40 100644
--- a/frontend/src/pages/project/MemberDetailsByIDPage/route-secret-manager.tsx
+++ b/frontend/src/pages/project/MemberDetailsByIDPage/route-secret-manager.tsx
@@ -15,7 +15,7 @@ export const Route = createFileRoute(
{
label: "Access Control",
link: linkOptions({
- to: "/projects/$projectId/access-management",
+ to: "/projects/secret-management/$projectId/access-management",
params: {
projectId: params.projectId
},
diff --git a/frontend/src/pages/project/MemberDetailsByIDPage/route-secret-scanning.tsx b/frontend/src/pages/project/MemberDetailsByIDPage/route-secret-scanning.tsx
index 5fa834531..ff66305fd 100644
--- a/frontend/src/pages/project/MemberDetailsByIDPage/route-secret-scanning.tsx
+++ b/frontend/src/pages/project/MemberDetailsByIDPage/route-secret-scanning.tsx
@@ -15,7 +15,7 @@ export const Route = createFileRoute(
{
label: "Access Control",
link: linkOptions({
- to: "/projects/$projectId/access-management",
+ to: "/projects/secret-scanning/$projectId/access-management",
params: {
projectId: params.projectId
},
diff --git a/frontend/src/pages/project/MemberDetailsByIDPage/route-ssh.tsx b/frontend/src/pages/project/MemberDetailsByIDPage/route-ssh.tsx
index 5a2f7e313..577c84e3f 100644
--- a/frontend/src/pages/project/MemberDetailsByIDPage/route-ssh.tsx
+++ b/frontend/src/pages/project/MemberDetailsByIDPage/route-ssh.tsx
@@ -15,7 +15,7 @@ export const Route = createFileRoute(
{
label: "Access Control",
link: linkOptions({
- to: "/projects/$projectId/access-management",
+ to: "/projects/ssh/$projectId/access-management",
params: {
projectId: params.projectId
},
diff --git a/frontend/src/pages/project/MemberDetailsByIDPage/route.tsx b/frontend/src/pages/project/MemberDetailsByIDPage/route.tsx
deleted file mode 100644
index 2436c762f..000000000
--- a/frontend/src/pages/project/MemberDetailsByIDPage/route.tsx
+++ /dev/null
@@ -1,33 +0,0 @@
-import { createFileRoute, linkOptions } from "@tanstack/react-router";
-
-import { ProjectAccessControlTabs } from "@app/types/project";
-
-import { MemberDetailsByIDPage } from "./MemberDetailsByIDPage";
-
-export const Route = createFileRoute(
- "/_authenticate/_inject-org-details/_org-layout/projects/$projectId/_project-layout/_project-general-layout/members/$membershipId"
-)({
- component: MemberDetailsByIDPage,
- beforeLoad: ({ context, params }) => {
- return {
- breadcrumbs: [
- ...context.breadcrumbs,
- {
- label: "Access Control",
- link: linkOptions({
- to: "/projects/$projectId/access-management",
- params: {
- projectId: params.projectId
- },
- search: {
- selectedTab: ProjectAccessControlTabs.Member
- }
- })
- },
- {
- label: "User"
- }
- ]
- };
- }
-});
diff --git a/frontend/src/pages/project/RoleDetailsBySlugPage/route-cert-manager.tsx b/frontend/src/pages/project/RoleDetailsBySlugPage/route-cert-manager.tsx
index fdcfac7fb..87446db73 100644
--- a/frontend/src/pages/project/RoleDetailsBySlugPage/route-cert-manager.tsx
+++ b/frontend/src/pages/project/RoleDetailsBySlugPage/route-cert-manager.tsx
@@ -15,7 +15,7 @@ export const Route = createFileRoute(
{
label: "Access Control",
link: linkOptions({
- to: "/projects/$projectId/access-management",
+ to: "/projects/cert-management/$projectId/access-management",
params: {
projectId: params.projectId
},
diff --git a/frontend/src/pages/project/RoleDetailsBySlugPage/route-kms.tsx b/frontend/src/pages/project/RoleDetailsBySlugPage/route-kms.tsx
index d17f16342..e1eae2756 100644
--- a/frontend/src/pages/project/RoleDetailsBySlugPage/route-kms.tsx
+++ b/frontend/src/pages/project/RoleDetailsBySlugPage/route-kms.tsx
@@ -15,7 +15,7 @@ export const Route = createFileRoute(
{
label: "Access Control",
link: linkOptions({
- to: "/projects/$projectId/access-management",
+ to: "/projects/kms/$projectId/access-management",
params: {
projectId: params.projectId
},
diff --git a/frontend/src/pages/project/RoleDetailsBySlugPage/route-secret-manager.tsx b/frontend/src/pages/project/RoleDetailsBySlugPage/route-secret-manager.tsx
index 5e2f03743..ad4d44d67 100644
--- a/frontend/src/pages/project/RoleDetailsBySlugPage/route-secret-manager.tsx
+++ b/frontend/src/pages/project/RoleDetailsBySlugPage/route-secret-manager.tsx
@@ -15,7 +15,7 @@ export const Route = createFileRoute(
{
label: "Access Control",
link: linkOptions({
- to: "/projects/$projectId/access-management",
+ to: "/projects/secret-management/$projectId/access-management",
params: {
projectId: params.projectId
},
diff --git a/frontend/src/pages/project/RoleDetailsBySlugPage/route-secret-scanning.tsx b/frontend/src/pages/project/RoleDetailsBySlugPage/route-secret-scanning.tsx
index 44aecad7c..6d5ad64e5 100644
--- a/frontend/src/pages/project/RoleDetailsBySlugPage/route-secret-scanning.tsx
+++ b/frontend/src/pages/project/RoleDetailsBySlugPage/route-secret-scanning.tsx
@@ -15,7 +15,7 @@ export const Route = createFileRoute(
{
label: "Access Control",
link: linkOptions({
- to: "/projects/$projectId/access-management",
+ to: "/projects/secret-scanning/$projectId/access-management",
params: {
projectId: params.projectId
},
diff --git a/frontend/src/pages/project/RoleDetailsBySlugPage/route-ssh.tsx b/frontend/src/pages/project/RoleDetailsBySlugPage/route-ssh.tsx
index c91851dea..1f06f795d 100644
--- a/frontend/src/pages/project/RoleDetailsBySlugPage/route-ssh.tsx
+++ b/frontend/src/pages/project/RoleDetailsBySlugPage/route-ssh.tsx
@@ -15,7 +15,7 @@ export const Route = createFileRoute(
{
label: "Access Control",
link: linkOptions({
- to: "/projects/$projectId/access-management",
+ to: "/projects/ssh/$projectId/access-management",
params: {
projectId: params.projectId
},
diff --git a/frontend/src/pages/project/RoleDetailsBySlugPage/route.tsx b/frontend/src/pages/project/RoleDetailsBySlugPage/route.tsx
deleted file mode 100644
index c230df0a3..000000000
--- a/frontend/src/pages/project/RoleDetailsBySlugPage/route.tsx
+++ /dev/null
@@ -1,33 +0,0 @@
-import { createFileRoute, linkOptions } from "@tanstack/react-router";
-
-import { ProjectAccessControlTabs } from "@app/types/project";
-
-import { RoleDetailsBySlugPage } from "./RoleDetailsBySlugPage";
-
-export const Route = createFileRoute(
- "/_authenticate/_inject-org-details/_org-layout/projects/$projectId/_project-layout/_project-general-layout/roles/$roleSlug"
-)({
- component: RoleDetailsBySlugPage,
- beforeLoad: ({ context, params }) => {
- return {
- breadcrumbs: [
- ...context.breadcrumbs,
- {
- label: "Access Control",
- link: linkOptions({
- to: "/projects/$projectId/access-management",
- params: {
- projectId: params.projectId
- },
- search: {
- selectedTab: ProjectAccessControlTabs.Roles
- }
- })
- },
- {
- label: "Roles"
- }
- ]
- };
- }
-});
diff --git a/frontend/src/pages/project/SettingsPage/SettingsPage.tsx b/frontend/src/pages/project/SettingsPage/SettingsPage.tsx
deleted file mode 100644
index 76d88947a..000000000
--- a/frontend/src/pages/project/SettingsPage/SettingsPage.tsx
+++ /dev/null
@@ -1,40 +0,0 @@
-import { Helmet } from "react-helmet";
-import { useTranslation } from "react-i18next";
-
-import { PageHeader, Tab, TabList, TabPanel, Tabs } from "@app/components/v2";
-
-import { ProjectGeneralTab } from "./components/ProjectGeneralTab";
-
-const tabs = [{ name: "General", key: "tab-project-general", Component: ProjectGeneralTab }];
-
-export const SettingsPage = () => {
- const { t } = useTranslation();
-
- return (
-
-
- {t("common.head-title", { title: t("settings.project.title") })}
-
-
-
-
-
- {tabs.map((tab) => (
-
- {tab.name}
-
- ))}
-
- {tabs.map(({ key, Component }) => (
-
-
-
- ))}
-
-
-
- );
-};
diff --git a/frontend/src/pages/project/SettingsPage/route-cert-manager.tsx b/frontend/src/pages/project/SettingsPage/route-cert-manager.tsx
deleted file mode 100644
index 0718ea2f2..000000000
--- a/frontend/src/pages/project/SettingsPage/route-cert-manager.tsx
+++ /dev/null
@@ -1,19 +0,0 @@
-import { createFileRoute } from "@tanstack/react-router";
-
-import { SettingsPage } from "./SettingsPage";
-
-export const Route = createFileRoute(
- "/_authenticate/_inject-org-details/_org-layout/projects/$projectId/_project-layout/_project-general-layout/settings"
-)({
- component: SettingsPage,
- beforeLoad: ({ context }) => {
- return {
- breadcrumbs: [
- ...context.breadcrumbs,
- {
- label: "Settings"
- }
- ]
- };
- }
-});
diff --git a/frontend/src/pages/project/SettingsPage/route-kms.tsx b/frontend/src/pages/project/SettingsPage/route-kms.tsx
deleted file mode 100644
index 0718ea2f2..000000000
--- a/frontend/src/pages/project/SettingsPage/route-kms.tsx
+++ /dev/null
@@ -1,19 +0,0 @@
-import { createFileRoute } from "@tanstack/react-router";
-
-import { SettingsPage } from "./SettingsPage";
-
-export const Route = createFileRoute(
- "/_authenticate/_inject-org-details/_org-layout/projects/$projectId/_project-layout/_project-general-layout/settings"
-)({
- component: SettingsPage,
- beforeLoad: ({ context }) => {
- return {
- breadcrumbs: [
- ...context.breadcrumbs,
- {
- label: "Settings"
- }
- ]
- };
- }
-});
diff --git a/frontend/src/pages/project/SettingsPage/route-secret-manager.tsx b/frontend/src/pages/project/SettingsPage/route-secret-manager.tsx
deleted file mode 100644
index 0718ea2f2..000000000
--- a/frontend/src/pages/project/SettingsPage/route-secret-manager.tsx
+++ /dev/null
@@ -1,19 +0,0 @@
-import { createFileRoute } from "@tanstack/react-router";
-
-import { SettingsPage } from "./SettingsPage";
-
-export const Route = createFileRoute(
- "/_authenticate/_inject-org-details/_org-layout/projects/$projectId/_project-layout/_project-general-layout/settings"
-)({
- component: SettingsPage,
- beforeLoad: ({ context }) => {
- return {
- breadcrumbs: [
- ...context.breadcrumbs,
- {
- label: "Settings"
- }
- ]
- };
- }
-});
diff --git a/frontend/src/pages/project/SettingsPage/route-secret-scanning.tsx b/frontend/src/pages/project/SettingsPage/route-secret-scanning.tsx
deleted file mode 100644
index 0718ea2f2..000000000
--- a/frontend/src/pages/project/SettingsPage/route-secret-scanning.tsx
+++ /dev/null
@@ -1,19 +0,0 @@
-import { createFileRoute } from "@tanstack/react-router";
-
-import { SettingsPage } from "./SettingsPage";
-
-export const Route = createFileRoute(
- "/_authenticate/_inject-org-details/_org-layout/projects/$projectId/_project-layout/_project-general-layout/settings"
-)({
- component: SettingsPage,
- beforeLoad: ({ context }) => {
- return {
- breadcrumbs: [
- ...context.breadcrumbs,
- {
- label: "Settings"
- }
- ]
- };
- }
-});
diff --git a/frontend/src/pages/project/SettingsPage/route-ssh.tsx b/frontend/src/pages/project/SettingsPage/route-ssh.tsx
deleted file mode 100644
index 364823b97..000000000
--- a/frontend/src/pages/project/SettingsPage/route-ssh.tsx
+++ /dev/null
@@ -1,19 +0,0 @@
-import { createFileRoute } from "@tanstack/react-router";
-
-import { SettingsPage } from "./SettingsPage";
-
-export const Route = createFileRoute(
- "/_authenticate/_inject-org-details/_org-layout/_project-layout/projects/ssh/$projectId/_ssh-layout/settings"
-)({
- component: SettingsPage,
- beforeLoad: ({ context }) => {
- return {
- breadcrumbs: [
- ...context.breadcrumbs,
- {
- label: "Settings"
- }
- ]
- };
- }
-});
diff --git a/frontend/src/pages/project/SettingsPage/route.tsx b/frontend/src/pages/project/SettingsPage/route.tsx
deleted file mode 100644
index 0718ea2f2..000000000
--- a/frontend/src/pages/project/SettingsPage/route.tsx
+++ /dev/null
@@ -1,19 +0,0 @@
-import { createFileRoute } from "@tanstack/react-router";
-
-import { SettingsPage } from "./SettingsPage";
-
-export const Route = createFileRoute(
- "/_authenticate/_inject-org-details/_org-layout/projects/$projectId/_project-layout/_project-general-layout/settings"
-)({
- component: SettingsPage,
- beforeLoad: ({ context }) => {
- return {
- breadcrumbs: [
- ...context.breadcrumbs,
- {
- label: "Settings"
- }
- ]
- };
- }
-});
diff --git a/frontend/src/pages/project/layout-general.tsx b/frontend/src/pages/project/layout-general.tsx
deleted file mode 100644
index ae2f764d0..000000000
--- a/frontend/src/pages/project/layout-general.tsx
+++ /dev/null
@@ -1,9 +0,0 @@
-import { createFileRoute } from "@tanstack/react-router";
-
-import { ProjectGeneralLayout } from "@app/layouts/ProjectGeneralLayout";
-
-export const Route = createFileRoute(
- "/_authenticate/_inject-org-details/_org-layout/projects/$projectId/_project-layout/_project-general-layout"
-)({
- component: ProjectGeneralLayout
-});
diff --git a/frontend/src/pages/project/layout.tsx b/frontend/src/pages/project/layout.tsx
deleted file mode 100644
index baa313605..000000000
--- a/frontend/src/pages/project/layout.tsx
+++ /dev/null
@@ -1,21 +0,0 @@
-import { createFileRoute } from "@tanstack/react-router";
-
-import { BreadcrumbTypes } from "@app/components/v2";
-import { ProjectLayout } from "@app/layouts/ProjectLayout";
-import { ProjectSelect } from "@app/layouts/ProjectLayout/components/ProjectSelect";
-
-export const Route = createFileRoute(
- "/_authenticate/_inject-org-details/_org-layout/_project-layout"
-)({
- component: ProjectLayout,
- beforeLoad: async () => {
- return {
- breadcrumbs: [
- {
- type: BreadcrumbTypes.Component,
- component: ProjectSelect
- }
- ]
- };
- }
-});