From 1cb79ca67ccf86f11d2bdfe4dc0f44633a860445 Mon Sep 17 00:00:00 2001 From: WardPearce Date: Fri, 13 Feb 2026 21:39:16 +1300 Subject: [PATCH] Started login checks --- materialious/src/lib/backend.ts | 15 +++++++++++++++ materialious/src/lib/misc.ts | 18 ++---------------- materialious/src/routes/(app)/+layout.svelte | 11 +++++++++-- .../routes/api/proxy/[urlToProxy]/+server.ts | 11 +++++++++++ 4 files changed, 37 insertions(+), 18 deletions(-) create mode 100644 materialious/src/lib/backend.ts diff --git a/materialious/src/lib/backend.ts b/materialious/src/lib/backend.ts new file mode 100644 index 00000000..b4ccbed0 --- /dev/null +++ b/materialious/src/lib/backend.ts @@ -0,0 +1,15 @@ +export type IsOwnBackend = { + builtWithBackend: boolean; + internalAuth: boolean; + requireAuth: boolean; +}; + +export function isOwnBackend(): IsOwnBackend | null { + if (import.meta.env.VITE_BUILD_WITH_BACKEND !== 'true') return null; + + return { + builtWithBackend: true, + internalAuth: import.meta.env.VITE_INTERNAL_AUTH !== 'false', + requireAuth: import.meta.env.VITE_REQUIRE_AUTH !== 'false' + }; +} diff --git a/materialious/src/lib/misc.ts b/materialious/src/lib/misc.ts index a805dfed..92dea445 100644 --- a/materialious/src/lib/misc.ts +++ b/materialious/src/lib/misc.ts @@ -28,6 +28,7 @@ import { page } from '$app/state'; import { Capacitor } from '@capacitor/core'; import { Share } from '@capacitor/share'; import { Clipboard } from '@capacitor/clipboard'; +import { isOwnBackend } from './backend'; export function isMobile(): boolean { const userAgent = navigator.userAgent; @@ -230,23 +231,8 @@ export function findElementForTime( return null; } -export type IsOwnBackend = { - builtWithBackend: boolean; - internalAuth: boolean; - requireAuth: boolean; -}; -export function isOwnBackend(): IsOwnBackend | false { - if (import.meta.env.VITE_BUILD_WITH_BACKEND !== 'true') return false; - - return { - builtWithBackend: true, - internalAuth: import.meta.env.VITE_INTERNAL_AUTH === 'false', - requireAuth: import.meta.env.VITE_REQUIRE_AUTH === 'false' - }; -} - export function isUnrestrictedPlatform(): boolean { - return isOwnBackend() !== false || Capacitor.isNativePlatform(); + return isOwnBackend() !== null || Capacitor.isNativePlatform(); } export function isYTBackend(): boolean { diff --git a/materialious/src/routes/(app)/+layout.svelte b/materialious/src/routes/(app)/+layout.svelte index 7b272735..bba76f3e 100644 --- a/materialious/src/routes/(app)/+layout.svelte +++ b/materialious/src/routes/(app)/+layout.svelte @@ -42,9 +42,12 @@ import { isYTBackend, clearCaches, truncate } from '$lib/misc'; import Author from '$lib/components/Author.svelte'; import Toast from '$lib/components/Toast.svelte'; + import { isOwnBackend } from '$lib/backend'; let { children } = $props(); + const showLogin = !isYTBackend() || isOwnBackend()?.internalAuth; + let mobileSearchShow = $state(false); let isLoggedIn = $state(false); @@ -112,6 +115,10 @@ }); async function login() { + if (isOwnBackend()?.internalAuth) { + return; + } + if (!$isAndroidTvStore) { // eslint-disable-next-line svelte/prefer-svelte-reactivity const path = new URL(`${get(instanceStore)}/authorize_token`); @@ -281,7 +288,7 @@ settings
{$_('layout.settings')}
- {#if !isYTBackend()} + {#if showLogin} {#if !isLoggedIn} login @@ -367,7 +374,7 @@
{$_('layout.settings')}
- {#if !isYTBackend()} + {#if showLogin} {#if !isLoggedIn}