From a83a7d8c08cfa3a615a38001702a34088b919833 Mon Sep 17 00:00:00 2001
From: maxDorninger <97409287+maxDorninger@users.noreply.github.com>
Date: Tue, 29 Jul 2025 15:22:23 +0200
Subject: [PATCH 1/4] fix password being set to new email when trying to update
oneself's email
---
web/src/lib/components/user-settings.svelte | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/web/src/lib/components/user-settings.svelte b/web/src/lib/components/user-settings.svelte
index ea38290..bb9df58 100644
--- a/web/src/lib/components/user-settings.svelte
+++ b/web/src/lib/components/user-settings.svelte
@@ -21,7 +21,7 @@
credentials: 'include',
body: JSON.stringify({
...(newPassword !== '' && { password: newPassword }),
- ...(newEmail !== '' && { password: newEmail })
+ ...(newEmail !== '' && { email: newEmail })
})
});
@@ -80,6 +80,13 @@
placeholder="Keep empty to not change the password"
type="password"
/>
+
From bb294225f25fcd57f16e0c02a858b2b9501c2771 Mon Sep 17 00:00:00 2001
From: maxDorninger <97409287+maxDorninger@users.noreply.github.com>
Date: Tue, 29 Jul 2025 15:36:50 +0200
Subject: [PATCH 2/4] fix formatting
---
web/src/lib/components/user-settings.svelte | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/web/src/lib/components/user-settings.svelte b/web/src/lib/components/user-settings.svelte
index bb9df58..582f009 100644
--- a/web/src/lib/components/user-settings.svelte
+++ b/web/src/lib/components/user-settings.svelte
@@ -81,11 +81,11 @@
type="password"
/>
From 99c0a7dafac5c410512306f521eafb4bfdf43526 Mon Sep 17 00:00:00 2001
From: maxDorninger <97409287+maxDorninger@users.noreply.github.com>
Date: Tue, 29 Jul 2025 16:04:44 +0200
Subject: [PATCH 3/4] remove duplicate input field
---
web/src/lib/components/user-settings.svelte | 7 -------
1 file changed, 7 deletions(-)
diff --git a/web/src/lib/components/user-settings.svelte b/web/src/lib/components/user-settings.svelte
index 582f009..904a643 100644
--- a/web/src/lib/components/user-settings.svelte
+++ b/web/src/lib/components/user-settings.svelte
@@ -80,13 +80,6 @@
placeholder="Keep empty to not change the password"
type="password"
/>
-
From c773bf41b697e88d268a8ac191b1c1b375f4ea3e Mon Sep 17 00:00:00 2001
From: maxDorninger <97409287+maxDorninger@users.noreply.github.com>
Date: Tue, 29 Jul 2025 16:20:11 +0200
Subject: [PATCH 4/4] keep users who change their email verified status
---
media_manager/auth/users.py | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/media_manager/auth/users.py b/media_manager/auth/users.py
index d62fffc..f47ceea 100644
--- a/media_manager/auth/users.py
+++ b/media_manager/auth/users.py
@@ -1,7 +1,7 @@
import contextlib
import logging
import uuid
-from typing import Optional
+from typing import Optional, Any
from fastapi import Depends, Request
from fastapi_users import BaseUserManager, FastAPIUsers, UUIDIDMixin, models
@@ -46,6 +46,19 @@ class UserManager(UUIDIDMixin, BaseUserManager[User, uuid.UUID]):
reset_password_token_secret = SECRET
verification_token_secret = SECRET
+ async def on_after_update(
+ self,
+ user: models.UP,
+ update_dict: dict[str, Any],
+ request: Optional[Request] = None,
+ ) -> None:
+ log.info(f"User {user.id} has been updated. Changes: {update_dict}")
+ if "is_superuser" in update_dict and update_dict["is_superuser"]:
+ log.info(f"User {user.id} has been granted superuser privileges.")
+ if "email" in update_dict:
+ updated_user = UserUpdate(is_verified=True)
+ await self.update(user=user, user_update=updated_user)
+
async def on_after_register(self, user: User, request: Optional[Request] = None):
log.info(f"User {user.id} has registered.")
if user.email in config.admin_emails: