mirror of
https://github.com/danswer-ai/danswer.git
synced 2025-10-10 21:26:01 +02:00
Fix more auth disabled flakiness
This commit is contained in:
@@ -63,7 +63,7 @@ export default async function ChatPage({
|
|||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log(`Some fetch failed for the main search page - ${e}`);
|
console.log(`Some fetch failed for the main search page - ${e}`);
|
||||||
}
|
}
|
||||||
const authTypeMetadata = results[0] as AuthTypeMetadata;
|
const authTypeMetadata = results[0] as AuthTypeMetadata | null;
|
||||||
const user = results[1] as User | null;
|
const user = results[1] as User | null;
|
||||||
const connectorsResponse = results[2] as Response | null;
|
const connectorsResponse = results[2] as Response | null;
|
||||||
const documentSetsResponse = results[3] as Response | null;
|
const documentSetsResponse = results[3] as Response | null;
|
||||||
@@ -71,12 +71,12 @@ export default async function ChatPage({
|
|||||||
const chatSessionsResponse = results[5] as Response | null;
|
const chatSessionsResponse = results[5] as Response | null;
|
||||||
const chatSessionMessagesResponse = results[6] as Response | null;
|
const chatSessionMessagesResponse = results[6] as Response | null;
|
||||||
|
|
||||||
const authDisabled = authTypeMetadata.authType === "disabled";
|
const authDisabled = authTypeMetadata?.authType === "disabled";
|
||||||
if (!authDisabled && !user) {
|
if (!authDisabled && !user) {
|
||||||
return redirect("/auth/login");
|
return redirect("/auth/login");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (user && !user.is_verified && authTypeMetadata.requiresVerification) {
|
if (user && !user.is_verified && authTypeMetadata?.requiresVerification) {
|
||||||
return redirect("/auth/waiting-on-verification");
|
return redirect("/auth/waiting-on-verification");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -40,24 +40,25 @@ export default async function Home() {
|
|||||||
null,
|
null,
|
||||||
null,
|
null,
|
||||||
null,
|
null,
|
||||||
|
null,
|
||||||
];
|
];
|
||||||
try {
|
try {
|
||||||
results = await Promise.all(tasks);
|
results = await Promise.all(tasks);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log(`Some fetch failed for the main search page - ${e}`);
|
console.log(`Some fetch failed for the main search page - ${e}`);
|
||||||
}
|
}
|
||||||
const authTypeMetadata = results[0] as AuthTypeMetadata;
|
const authTypeMetadata = results[0] as AuthTypeMetadata | null;
|
||||||
const user = results[1] as User | null;
|
const user = results[1] as User | null;
|
||||||
const connectorsResponse = results[2] as Response | null;
|
const connectorsResponse = results[2] as Response | null;
|
||||||
const documentSetsResponse = results[3] as Response | null;
|
const documentSetsResponse = results[3] as Response | null;
|
||||||
const personaResponse = results[4] as Response | null;
|
const personaResponse = results[4] as Response | null;
|
||||||
|
|
||||||
const authDisabled = authTypeMetadata.authType === "disabled";
|
const authDisabled = authTypeMetadata?.authType === "disabled";
|
||||||
if (!authDisabled && !user) {
|
if (!authDisabled && !user) {
|
||||||
return redirect("/auth/login");
|
return redirect("/auth/login");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (user && !user.is_verified && authTypeMetadata.requiresVerification) {
|
if (user && !user.is_verified && authTypeMetadata?.requiresVerification) {
|
||||||
return redirect("/auth/waiting-on-verification");
|
return redirect("/auth/waiting-on-verification");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -11,15 +11,32 @@ import {
|
|||||||
RobotIcon,
|
RobotIcon,
|
||||||
ConnectorIcon,
|
ConnectorIcon,
|
||||||
} from "@/components/icons/icons";
|
} from "@/components/icons/icons";
|
||||||
import { getAuthDisabledSS, getCurrentUserSS } from "@/lib/userSS";
|
import { User } from "@/lib/types";
|
||||||
|
import {
|
||||||
|
AuthTypeMetadata,
|
||||||
|
getAuthTypeMetadataSS,
|
||||||
|
getCurrentUserSS,
|
||||||
|
} from "@/lib/userSS";
|
||||||
import { redirect } from "next/navigation";
|
import { redirect } from "next/navigation";
|
||||||
|
|
||||||
export async function Layout({ children }: { children: React.ReactNode }) {
|
export async function Layout({ children }: { children: React.ReactNode }) {
|
||||||
const [authDisabled, user] = await Promise.all([
|
const tasks = [getAuthTypeMetadataSS(), getCurrentUserSS()];
|
||||||
getAuthDisabledSS(),
|
|
||||||
getCurrentUserSS(),
|
|
||||||
]);
|
|
||||||
|
|
||||||
|
// catch cases where the backend is completely unreachable here
|
||||||
|
// without try / catch, will just raise an exception and the page
|
||||||
|
// will not render
|
||||||
|
let results: (User | AuthTypeMetadata | null)[] = [null, null];
|
||||||
|
try {
|
||||||
|
results = await Promise.all(tasks);
|
||||||
|
} catch (e) {
|
||||||
|
console.log(`Some fetch failed for the main search page - ${e}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
const authTypeMetadata = results[0] as AuthTypeMetadata | null;
|
||||||
|
const user = results[1] as User | null;
|
||||||
|
|
||||||
|
const authDisabled = authTypeMetadata?.authType === "disabled";
|
||||||
|
const requiresVerification = authTypeMetadata?.requiresVerification;
|
||||||
if (!authDisabled) {
|
if (!authDisabled) {
|
||||||
if (!user) {
|
if (!user) {
|
||||||
return redirect("/auth/login");
|
return redirect("/auth/login");
|
||||||
@@ -27,6 +44,9 @@ export async function Layout({ children }: { children: React.ReactNode }) {
|
|||||||
if (user.role !== "admin") {
|
if (user.role !== "admin") {
|
||||||
return redirect("/");
|
return redirect("/");
|
||||||
}
|
}
|
||||||
|
if (!user.is_verified && requiresVerification) {
|
||||||
|
return redirect("/auth/waiting-on-verification");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
Reference in New Issue
Block a user