diff --git a/backend/package-lock.json b/backend/package-lock.json index 6373ef244..873dbb217 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -21,7 +21,7 @@ "@fastify/etag": "^5.1.0", "@fastify/formbody": "^7.4.0", "@fastify/helmet": "^11.1.1", - "@fastify/multipart": "^8.3.1", + "@fastify/multipart": "8.3.1", "@fastify/passport": "^2.4.0", "@fastify/rate-limit": "^9.0.0", "@fastify/request-context": "^5.1.0", diff --git a/frontend/src/pages/middlewares/authenticate.tsx b/frontend/src/pages/middlewares/authenticate.tsx index cb9690837..56b3fdbfa 100644 --- a/frontend/src/pages/middlewares/authenticate.tsx +++ b/frontend/src/pages/middlewares/authenticate.tsx @@ -27,7 +27,7 @@ export const Route = createFileRoute("/_authenticate")({ }); }); - if (!data.organizationId && location.pathname !== ROUTE_PATHS.Auth.PasswordSetupPage.path) { + if (!data.organizationId && location.pathname !== ROUTE_PATHS.Auth.PasswordSetupPage.path && location.pathname !== "/organization/none") { throw redirect({ to: "/login/select-organization" }); } diff --git a/frontend/src/pages/organization/NoOrgPage/NoOrgPage.tsx b/frontend/src/pages/organization/NoOrgPage/NoOrgPage.tsx index 9eca51722..495842bf5 100644 --- a/frontend/src/pages/organization/NoOrgPage/NoOrgPage.tsx +++ b/frontend/src/pages/organization/NoOrgPage/NoOrgPage.tsx @@ -20,7 +20,7 @@ export const NoOrgPage = () => { {t("common.head-title", { title: t("settings.org.title") })} -
+
handlePopUpToggle("createOrg", false)} diff --git a/frontend/src/pages/organization/NoOrgPage/route.tsx b/frontend/src/pages/organization/NoOrgPage/route.tsx index 5c5573dc8..d89f77c1c 100644 --- a/frontend/src/pages/organization/NoOrgPage/route.tsx +++ b/frontend/src/pages/organization/NoOrgPage/route.tsx @@ -1,9 +1,7 @@ -import { createFileRoute } from "@tanstack/react-router"; +import { createFileRoute } from '@tanstack/react-router' -import { NoOrgPage } from "./NoOrgPage"; +import { NoOrgPage } from './NoOrgPage' -export const Route = createFileRoute( - "/_authenticate/_inject-org-details/_org-layout/organization/none" -)({ - component: NoOrgPage -}); +export const Route = createFileRoute('/_authenticate/organization/none')({ + component: NoOrgPage, +}) diff --git a/frontend/src/pages/organization/layout.tsx b/frontend/src/pages/organization/layout.tsx index 79bdbf216..5da0757be 100644 --- a/frontend/src/pages/organization/layout.tsx +++ b/frontend/src/pages/organization/layout.tsx @@ -1,7 +1,9 @@ -import { createFileRoute } from "@tanstack/react-router"; +import { createFileRoute } from '@tanstack/react-router' -import { OrganizationLayout } from "@app/layouts/OrganizationLayout"; +import { OrganizationLayout } from '@app/layouts/OrganizationLayout' -export const Route = createFileRoute("/_authenticate/_inject-org-details/_org-layout")({ - component: OrganizationLayout -}); +export const Route = createFileRoute( + '/_authenticate/_inject-org-details/_org-layout', +)({ + component: OrganizationLayout, +}) diff --git a/frontend/src/routeTree.gen.ts b/frontend/src/routeTree.gen.ts index 968e098cf..1791af6f1 100644 --- a/frontend/src/routeTree.gen.ts +++ b/frontend/src/routeTree.gen.ts @@ -33,6 +33,7 @@ import { Route as authLoginSsoPageRouteImport } from './pages/auth/LoginSsoPage/ import { Route as authSelectOrgPageRouteImport } from './pages/auth/SelectOrgPage/route' import { Route as authLoginLdapPageRouteImport } from './pages/auth/LoginLdapPage/route' import { Route as adminSignUpPageRouteImport } from './pages/admin/SignUpPage/route' +import { Route as organizationNoOrgPageRouteImport } from './pages/organization/NoOrgPage/route' import { Route as authSignUpPageRouteImport } from './pages/auth/SignUpPage/route' import { Route as authLoginPageRouteImport } from './pages/auth/LoginPage/route' import { Route as adminLayoutImport } from './pages/admin/layout' @@ -42,7 +43,6 @@ import { Route as userPersonalSettingsPageRouteImport } from './pages/user/Perso import { Route as organizationSettingsPageRouteImport } from './pages/organization/SettingsPage/route' import { Route as organizationSecretSharingPageRouteImport } from './pages/organization/SecretSharingPage/route' import { Route as organizationSecretScanningPageRouteImport } from './pages/organization/SecretScanningPage/route' -import { Route as organizationNoOrgPageRouteImport } from './pages/organization/NoOrgPage/route' import { Route as organizationBillingPageRouteImport } from './pages/organization/BillingPage/route' import { Route as organizationAuditLogsPageRouteImport } from './pages/organization/AuditLogsPage/route' import { Route as organizationAdminPageRouteImport } from './pages/organization/AdminPage/route' @@ -378,6 +378,14 @@ const adminSignUpPageRouteRoute = adminSignUpPageRouteImport.update({ getParentRoute: () => middlewaresRestrictLoginSignupRoute, } as any) +const organizationNoOrgPageRouteRoute = organizationNoOrgPageRouteImport.update( + { + id: '/organization/none', + path: '/organization/none', + getParentRoute: () => middlewaresAuthenticateRoute, + } as any, +) + const authSignUpPageRouteRoute = authSignUpPageRouteImport.update({ id: '/', path: '/', @@ -491,15 +499,6 @@ const organizationSecretScanningPageRouteRoute = AuthenticateInjectOrgDetailsOrgLayoutOrganizationRoute, } as any) -const organizationNoOrgPageRouteRoute = organizationNoOrgPageRouteImport.update( - { - id: '/none', - path: '/none', - getParentRoute: () => - AuthenticateInjectOrgDetailsOrgLayoutOrganizationRoute, - } as any, -) - const organizationBillingPageRouteRoute = organizationBillingPageRouteImport.update({ id: '/billing', @@ -1691,6 +1690,13 @@ declare module '@tanstack/react-router' { preLoaderRoute: typeof authSignUpPageRouteImport parentRoute: typeof RestrictLoginSignupSignupImport } + '/_authenticate/organization/none': { + id: '/_authenticate/organization/none' + path: '/organization/none' + fullPath: '/organization/none' + preLoaderRoute: typeof organizationNoOrgPageRouteImport + parentRoute: typeof middlewaresAuthenticateImport + } '/_restrict-login-signup/admin/signup': { id: '/_restrict-login-signup/admin/signup' path: '/admin/signup' @@ -1831,13 +1837,6 @@ declare module '@tanstack/react-router' { preLoaderRoute: typeof organizationBillingPageRouteImport parentRoute: typeof AuthenticateInjectOrgDetailsOrgLayoutOrganizationImport } - '/_authenticate/_inject-org-details/_org-layout/organization/none': { - id: '/_authenticate/_inject-org-details/_org-layout/organization/none' - path: '/none' - fullPath: '/organization/none' - preLoaderRoute: typeof organizationNoOrgPageRouteImport - parentRoute: typeof AuthenticateInjectOrgDetailsOrgLayoutOrganizationImport - } '/_authenticate/_inject-org-details/_org-layout/organization/secret-scanning': { id: '/_authenticate/_inject-org-details/_org-layout/organization/secret-scanning' path: '/secret-scanning' @@ -2892,7 +2891,6 @@ interface AuthenticateInjectOrgDetailsOrgLayoutOrganizationRouteChildren { organizationAdminPageRouteRoute: typeof organizationAdminPageRouteRoute organizationAuditLogsPageRouteRoute: typeof organizationAuditLogsPageRouteRoute organizationBillingPageRouteRoute: typeof organizationBillingPageRouteRoute - organizationNoOrgPageRouteRoute: typeof organizationNoOrgPageRouteRoute organizationSecretScanningPageRouteRoute: typeof organizationSecretScanningPageRouteRoute organizationSecretSharingPageRouteRoute: typeof organizationSecretSharingPageRouteRoute organizationSettingsPageRouteRoute: typeof organizationSettingsPageRouteRoute @@ -2914,7 +2912,6 @@ const AuthenticateInjectOrgDetailsOrgLayoutOrganizationRouteChildren: Authentica organizationAdminPageRouteRoute: organizationAdminPageRouteRoute, organizationAuditLogsPageRouteRoute: organizationAuditLogsPageRouteRoute, organizationBillingPageRouteRoute: organizationBillingPageRouteRoute, - organizationNoOrgPageRouteRoute: organizationNoOrgPageRouteRoute, organizationSecretScanningPageRouteRoute: organizationSecretScanningPageRouteRoute, organizationSecretSharingPageRouteRoute: @@ -3469,6 +3466,7 @@ interface middlewaresAuthenticateRouteChildren { authPasswordSetupPageRouteRoute: typeof authPasswordSetupPageRouteRoute middlewaresInjectOrgDetailsRoute: typeof middlewaresInjectOrgDetailsRouteWithChildren AuthenticatePersonalSettingsRoute: typeof AuthenticatePersonalSettingsRouteWithChildren + organizationNoOrgPageRouteRoute: typeof organizationNoOrgPageRouteRoute } const middlewaresAuthenticateRouteChildren: middlewaresAuthenticateRouteChildren = @@ -3478,6 +3476,7 @@ const middlewaresAuthenticateRouteChildren: middlewaresAuthenticateRouteChildren middlewaresInjectOrgDetailsRouteWithChildren, AuthenticatePersonalSettingsRoute: AuthenticatePersonalSettingsRouteWithChildren, + organizationNoOrgPageRouteRoute: organizationNoOrgPageRouteRoute, } const middlewaresAuthenticateRouteWithChildren = @@ -3569,6 +3568,7 @@ export interface FileRoutesByFullPath { '/signup': typeof RestrictLoginSignupSignupRouteWithChildren '/login/': typeof authLoginPageRouteRoute '/signup/': typeof authSignUpPageRouteRoute + '/organization/none': typeof organizationNoOrgPageRouteRoute '/admin/signup': typeof adminSignUpPageRouteRoute '/login/ldap': typeof authLoginLdapPageRouteRoute '/login/select-organization': typeof authSelectOrgPageRouteRoute @@ -3586,7 +3586,6 @@ export interface FileRoutesByFullPath { '/organization/admin': typeof organizationAdminPageRouteRoute '/organization/audit-logs': typeof organizationAuditLogsPageRouteRoute '/organization/billing': typeof organizationBillingPageRouteRoute - '/organization/none': typeof organizationNoOrgPageRouteRoute '/organization/secret-scanning': typeof organizationSecretScanningPageRouteRoute '/organization/secret-sharing': typeof organizationSecretSharingPageRouteRoute '/organization/settings': typeof organizationSettingsPageRouteRoute @@ -3740,6 +3739,7 @@ export interface FileRoutesByTo { '/personal-settings': typeof userPersonalSettingsPageRouteRoute '/login': typeof authLoginPageRouteRoute '/signup': typeof authSignUpPageRouteRoute + '/organization/none': typeof organizationNoOrgPageRouteRoute '/admin/signup': typeof adminSignUpPageRouteRoute '/login/ldap': typeof authLoginLdapPageRouteRoute '/login/select-organization': typeof authSelectOrgPageRouteRoute @@ -3755,7 +3755,6 @@ export interface FileRoutesByTo { '/organization/admin': typeof organizationAdminPageRouteRoute '/organization/audit-logs': typeof organizationAuditLogsPageRouteRoute '/organization/billing': typeof organizationBillingPageRouteRoute - '/organization/none': typeof organizationNoOrgPageRouteRoute '/organization/secret-scanning': typeof organizationSecretScanningPageRouteRoute '/organization/secret-sharing': typeof organizationSecretSharingPageRouteRoute '/organization/settings': typeof organizationSettingsPageRouteRoute @@ -3912,6 +3911,7 @@ export interface FileRoutesById { '/_restrict-login-signup/signup': typeof RestrictLoginSignupSignupRouteWithChildren '/_restrict-login-signup/login/': typeof authLoginPageRouteRoute '/_restrict-login-signup/signup/': typeof authSignUpPageRouteRoute + '/_authenticate/organization/none': typeof organizationNoOrgPageRouteRoute '/_restrict-login-signup/admin/signup': typeof adminSignUpPageRouteRoute '/_restrict-login-signup/login/ldap': typeof authLoginLdapPageRouteRoute '/_restrict-login-signup/login/select-organization': typeof authSelectOrgPageRouteRoute @@ -3932,7 +3932,6 @@ export interface FileRoutesById { '/_authenticate/_inject-org-details/_org-layout/organization/admin': typeof organizationAdminPageRouteRoute '/_authenticate/_inject-org-details/_org-layout/organization/audit-logs': typeof organizationAuditLogsPageRouteRoute '/_authenticate/_inject-org-details/_org-layout/organization/billing': typeof organizationBillingPageRouteRoute - '/_authenticate/_inject-org-details/_org-layout/organization/none': typeof organizationNoOrgPageRouteRoute '/_authenticate/_inject-org-details/_org-layout/organization/secret-scanning': typeof organizationSecretScanningPageRouteRoute '/_authenticate/_inject-org-details/_org-layout/organization/secret-sharing': typeof organizationSecretSharingPageRouteRoute '/_authenticate/_inject-org-details/_org-layout/organization/settings': typeof organizationSettingsPageRouteRoute @@ -4094,6 +4093,7 @@ export interface FileRouteTypes { | '/signup' | '/login/' | '/signup/' + | '/organization/none' | '/admin/signup' | '/login/ldap' | '/login/select-organization' @@ -4111,7 +4111,6 @@ export interface FileRouteTypes { | '/organization/admin' | '/organization/audit-logs' | '/organization/billing' - | '/organization/none' | '/organization/secret-scanning' | '/organization/secret-sharing' | '/organization/settings' @@ -4264,6 +4263,7 @@ export interface FileRouteTypes { | '/personal-settings' | '/login' | '/signup' + | '/organization/none' | '/admin/signup' | '/login/ldap' | '/login/select-organization' @@ -4279,7 +4279,6 @@ export interface FileRouteTypes { | '/organization/admin' | '/organization/audit-logs' | '/organization/billing' - | '/organization/none' | '/organization/secret-scanning' | '/organization/secret-sharing' | '/organization/settings' @@ -4434,6 +4433,7 @@ export interface FileRouteTypes { | '/_restrict-login-signup/signup' | '/_restrict-login-signup/login/' | '/_restrict-login-signup/signup/' + | '/_authenticate/organization/none' | '/_restrict-login-signup/admin/signup' | '/_restrict-login-signup/login/ldap' | '/_restrict-login-signup/login/select-organization' @@ -4454,7 +4454,6 @@ export interface FileRouteTypes { | '/_authenticate/_inject-org-details/_org-layout/organization/admin' | '/_authenticate/_inject-org-details/_org-layout/organization/audit-logs' | '/_authenticate/_inject-org-details/_org-layout/organization/billing' - | '/_authenticate/_inject-org-details/_org-layout/organization/none' | '/_authenticate/_inject-org-details/_org-layout/organization/secret-scanning' | '/_authenticate/_inject-org-details/_org-layout/organization/secret-sharing' | '/_authenticate/_inject-org-details/_org-layout/organization/settings' @@ -4651,7 +4650,8 @@ export const routeTree = rootRoute "children": [ "/_authenticate/password-setup", "/_authenticate/_inject-org-details", - "/_authenticate/personal-settings" + "/_authenticate/personal-settings", + "/_authenticate/organization/none" ] }, "/_restrict-login-signup": { @@ -4734,6 +4734,10 @@ export const routeTree = rootRoute "filePath": "auth/SignUpPage/route.tsx", "parent": "/_restrict-login-signup/signup" }, + "/_authenticate/organization/none": { + "filePath": "organization/NoOrgPage/route.tsx", + "parent": "/_authenticate" + }, "/_restrict-login-signup/admin/signup": { "filePath": "admin/SignUpPage/route.tsx", "parent": "/_restrict-login-signup" @@ -4818,7 +4822,6 @@ export const routeTree = rootRoute "/_authenticate/_inject-org-details/_org-layout/organization/admin", "/_authenticate/_inject-org-details/_org-layout/organization/audit-logs", "/_authenticate/_inject-org-details/_org-layout/organization/billing", - "/_authenticate/_inject-org-details/_org-layout/organization/none", "/_authenticate/_inject-org-details/_org-layout/organization/secret-scanning", "/_authenticate/_inject-org-details/_org-layout/organization/secret-sharing", "/_authenticate/_inject-org-details/_org-layout/organization/settings", @@ -4860,10 +4863,6 @@ export const routeTree = rootRoute "filePath": "organization/BillingPage/route.tsx", "parent": "/_authenticate/_inject-org-details/_org-layout/organization" }, - "/_authenticate/_inject-org-details/_org-layout/organization/none": { - "filePath": "organization/NoOrgPage/route.tsx", - "parent": "/_authenticate/_inject-org-details/_org-layout/organization" - }, "/_authenticate/_inject-org-details/_org-layout/organization/secret-scanning": { "filePath": "organization/SecretScanningPage/route.tsx", "parent": "/_authenticate/_inject-org-details/_org-layout/organization" diff --git a/frontend/src/routes.ts b/frontend/src/routes.ts index c284f816f..eb3a1caf3 100644 --- a/frontend/src/routes.ts +++ b/frontend/src/routes.ts @@ -16,7 +16,6 @@ const organizationRoutes = route("/organization", [ route("/admin", "organization/AdminPage/route.tsx"), route("/audit-logs", "organization/AuditLogsPage/route.tsx"), route("/billing", "organization/BillingPage/route.tsx"), - route("/none", "organization/NoOrgPage/route.tsx"), route("/secret-sharing", "organization/SecretSharingPage/route.tsx"), route("/settings", "organization/SettingsPage/route.tsx"), route("/secret-scanning", "organization/SecretScanningPage/route.tsx"), @@ -342,6 +341,7 @@ export const routes = rootRoute("root.tsx", [ route("/personal-settings", [ layout("user/layout.tsx", [index("user/PersonalSettingsPage/route.tsx")]) ]), + route("/organization/none", "organization/NoOrgPage/route.tsx"), middleware("inject-org-details.tsx", [ adminRoute, layout("org-layout", "organization/layout.tsx", [