diff --git a/apps/picture/apps/web/Dockerfile b/apps/picture/apps/web/Dockerfile index 8909de586..eac881392 100644 --- a/apps/picture/apps/web/Dockerfile +++ b/apps/picture/apps/web/Dockerfile @@ -35,6 +35,7 @@ COPY packages/shared-theme-ui ./packages/shared-theme-ui COPY packages/shared-subscription-types ./packages/shared-subscription-types COPY packages/shared-subscription-ui ./packages/shared-subscription-ui COPY packages/shared-profile-ui ./packages/shared-profile-ui +COPY packages/shared-types ./packages/shared-types COPY packages/shared-ui ./packages/shared-ui COPY packages/shared-utils ./packages/shared-utils diff --git a/apps/picture/apps/web/src/lib/stores/auth.svelte.ts b/apps/picture/apps/web/src/lib/stores/auth.svelte.ts index 1a23dddf4..ba158e0cb 100644 --- a/apps/picture/apps/web/src/lib/stores/auth.svelte.ts +++ b/apps/picture/apps/web/src/lib/stores/auth.svelte.ts @@ -174,6 +174,26 @@ export const authStore = { } }, + async confirmResetPassword(token: string, newPassword: string): Promise { + const authService = await getAuthService(); + if (!authService) { + return { success: false, error: 'Auth service not available' }; + } + + try { + const result = await authService.resetPassword(token, newPassword); + return { + success: result.success, + error: result.error, + }; + } catch (error) { + return { + success: false, + error: error instanceof Error ? error.message : 'Password reset failed', + }; + } + }, + /** * Get access token for API calls (raw token, no refresh) * @deprecated Use getValidToken() instead for automatic refresh diff --git a/apps/picture/apps/web/src/routes/auth/login/+page.svelte b/apps/picture/apps/web/src/routes/auth/login/+page.svelte index 88aeb68ba..d9a9c3d36 100644 --- a/apps/picture/apps/web/src/routes/auth/login/+page.svelte +++ b/apps/picture/apps/web/src/routes/auth/login/+page.svelte @@ -1,37 +1,19 @@ @@ -43,11 +25,9 @@ logo={PictureLogo} primaryColor="#3b82f6" onSignIn={handleSignIn} - onSignInWithGoogle={PUBLIC_GOOGLE_CLIENT_ID ? handleSignInWithGoogle : undefined} - onSignInWithApple={PUBLIC_APPLE_CLIENT_ID ? handleSignInWithApple : undefined} {goto} - enableGoogle={!!PUBLIC_GOOGLE_CLIENT_ID} - enableApple={!!PUBLIC_APPLE_CLIENT_ID} + enableGoogle={false} + enableApple={false} successRedirect="/app/gallery" registerPath="/auth/signup" forgotPasswordPath="/auth/forgot-password" diff --git a/apps/picture/apps/web/src/routes/auth/reset-password/+page.svelte b/apps/picture/apps/web/src/routes/auth/reset-password/+page.svelte new file mode 100644 index 000000000..8dc040d5c --- /dev/null +++ b/apps/picture/apps/web/src/routes/auth/reset-password/+page.svelte @@ -0,0 +1,158 @@ + + + + Passwort zurucksetzen - Picture + + +
+
+
+ +
+ +
+

+ Neues Passwort festlegen +

+ + {#if success} +
+

+ Passwort erfolgreich zuruckgesetzt! Sie werden zur Anmeldung weitergeleitet... +

+
+ {:else if !token} +
+

{error}

+ +
+ {:else} +
+ {#if error} +
+ {error} +
+ {/if} + +
+ + +
+ +
+ + +
+ + +
+ +

+ + Zuruck zur Anmeldung + +

+ {/if} +
+
+
diff --git a/apps/picture/apps/web/src/routes/auth/signup/+page.svelte b/apps/picture/apps/web/src/routes/auth/signup/+page.svelte index 1d12583eb..f653d546e 100644 --- a/apps/picture/apps/web/src/routes/auth/signup/+page.svelte +++ b/apps/picture/apps/web/src/routes/auth/signup/+page.svelte @@ -8,8 +8,8 @@ // Default to German const translations = getRegisterTranslations('de'); - async function handleSignUp(email: string, password: string) { - return authStore.signUp(email, password); + async function handleSignUp(email: string, password: string, name: string) { + return authStore.signUp(email, password, name); }