diff --git a/www/app/[domain]/transcripts/[transcriptId]/page.tsx b/www/app/[domain]/transcripts/[transcriptId]/page.tsx index 4c35f242..817bd5fe 100644 --- a/www/app/[domain]/transcripts/[transcriptId]/page.tsx +++ b/www/app/[domain]/transcripts/[transcriptId]/page.tsx @@ -30,9 +30,10 @@ export default function TranscriptDetails(details: TranscriptDetails) { const topics = useTopics(api, transcriptId); const waveform = useWaveform(api, transcriptId); const useActiveTopic = useState(null); + const requireLogin = featureEnabled("requireLogin"); useEffect(() => { - if (featureEnabled("requireLogin") && !isAuthenticated) return; + if (requireLogin && !isAuthenticated) return; setTranscriptId(details.params.transcriptId); }, [api]); diff --git a/www/app/lib/fief.ts b/www/app/lib/fief.ts index 4e1dec2d..02db67f5 100644 --- a/www/app/lib/fief.ts +++ b/www/app/lib/fief.ts @@ -62,24 +62,12 @@ export const getFiefAuth = async (url: URL) => { export const getFiefAuthMiddleware = async (url) => { const protectedPaths = [ - { - matcher: "/:domain/transcripts", - parameters: {}, - }, - { - matcher: "/:domain/transcripts/:path*", - parameters: {}, - }, - { - matcher: "/:domain/browse", - parameters: {}, - }, { matcher: "/transcripts", parameters: {}, }, { - matcher: "/transcripts/:path*", + matcher: "/transcripts/((?!new).*)", parameters: {}, }, { diff --git a/www/middleware.ts b/www/middleware.ts index 024e3697..5949603f 100644 --- a/www/middleware.ts +++ b/www/middleware.ts @@ -18,18 +18,20 @@ export async function middleware(request: NextRequest) { if (config.features.requireLogin) { const fiefMiddleware = await getFiefAuthMiddleware(request.nextUrl); - const fiefResponse = fiefMiddleware(request); + const fiefResponse = await fiefMiddleware(request); + if ( request.nextUrl.pathname == "/" || request.nextUrl.pathname.startsWith("/transcripts") || request.nextUrl.pathname.startsWith("/browse") ) { - // return fiefAuthMiddleware(domain, config['auth_callback_url'])(request, {rewrite: request.nextUrl.origin + "/" + domain + request.nextUrl.pathname}) - const response = NextResponse.rewrite( - request.nextUrl.origin + "/" + domain + request.nextUrl.pathname, - ); - // response = (await fiefResponse).headers - return response; + if (!fiefResponse.headers.get("x-middleware-rewrite")) { + fiefResponse.headers.set( + "x-middleware-rewrite", + request.nextUrl.origin + "/" + domain + request.nextUrl.pathname, + ); + } + console.log(fiefResponse); } return fiefResponse; }