diff --git a/changes/46639-login-logout-redirects-ignore-url-prefix b/changes/46639-login-logout-redirects-ignore-url-prefix new file mode 100644 index 0000000000..a172eb2784 --- /dev/null +++ b/changes/46639-login-logout-redirects-ignore-url-prefix @@ -0,0 +1 @@ +* Fixed logout/login redirects to respect the URL prefix in subpath deployments. diff --git a/frontend/components/App/App.tsx b/frontend/components/App/App.tsx index 304dd8bfd0..c5ec6e039c 100644 --- a/frontend/components/App/App.tsx +++ b/frontend/components/App/App.tsx @@ -4,6 +4,7 @@ import { useQuery } from "react-query"; import { ErrorBoundary } from "react-error-boundary"; import { isBefore } from "date-fns"; +import PATHS from "router/paths"; import page_titles from "router/page_titles"; import TableProvider from "context/table"; import QueryProvider from "context/query"; @@ -210,7 +211,7 @@ const App = ({ children, location }: IAppProps): JSX.Element => { // if this is not the device user page, // redirect to login if (!location?.pathname.includes("/device/")) { - window.location.href = "/login"; + window.location.href = PATHS.LOGIN; } } return true; diff --git a/frontend/pages/LogoutPage/LogoutPage.tsx b/frontend/pages/LogoutPage/LogoutPage.tsx index 95849d32e9..112390d01a 100644 --- a/frontend/pages/LogoutPage/LogoutPage.tsx +++ b/frontend/pages/LogoutPage/LogoutPage.tsx @@ -1,6 +1,7 @@ import { useContext, useEffect } from "react"; import { InjectedRouter } from "react-router"; +import PATHS from "router/paths"; import { AppContext } from "context/app"; import { NotificationContext } from "context/notification"; import sessionsAPI from "services/entities/sessions"; @@ -22,7 +23,7 @@ const LogoutPage = ({ router }: ILogoutPageProps) => { setTimeout(() => { window.location.href = isSandboxMode ? "https://www.fleetdm.com/logout" - : "/"; + : PATHS.ROOT; }, 500); } catch (response) { console.error(response); diff --git a/frontend/pages/admin/ManageFleetsPage/TeamDetailsWrapper/UsersPage/UsersPage.tsx b/frontend/pages/admin/ManageFleetsPage/TeamDetailsWrapper/UsersPage/UsersPage.tsx index d0ed2c7209..07ee05aaa8 100644 --- a/frontend/pages/admin/ManageFleetsPage/TeamDetailsWrapper/UsersPage/UsersPage.tsx +++ b/frontend/pages/admin/ManageFleetsPage/TeamDetailsWrapper/UsersPage/UsersPage.tsx @@ -150,7 +150,7 @@ const UsersPage = ({ location, router }: ITeamSubnavProps): JSX.Element => { ); // If user removes self from team, redirect to home if (currentUser && currentUser.id === removedUsers.users[0].id) { - window.location.href = "/"; + window.location.href = PATHS.ROOT; } }) .catch(() => @@ -319,7 +319,7 @@ const UsersPage = ({ location, router }: ITeamSubnavProps): JSX.Element => { (thisTeam) => thisTeam.id === teamIdForApi ); if (selectedTeam && selectedTeam[0].role !== "admin") { - window.location.href = "/"; + window.location.href = PATHS.ROOT; } } else { refetchUsers(); diff --git a/frontend/pages/admin/ManageUsersPage/components/UsersTable/UsersTable.tsx b/frontend/pages/admin/ManageUsersPage/components/UsersTable/UsersTable.tsx index 7de0f57c65..15680102e8 100644 --- a/frontend/pages/admin/ManageUsersPage/components/UsersTable/UsersTable.tsx +++ b/frontend/pages/admin/ManageUsersPage/components/UsersTable/UsersTable.tsx @@ -218,7 +218,7 @@ const UsersTable = ({ router }: IUsersTableProps): JSX.Element => { if (isResettingCurrentUser) { authToken.remove(); setTimeout(() => { - window.location.href = "/"; + window.location.href = PATHS.ROOT; }, 500); return; }