From 6bc0b3ac5a903ba996f0377b4ace2370b9c79f1f Mon Sep 17 00:00:00 2001 From: CCS Admin Date: Thu, 26 Feb 2026 09:35:54 +0000 Subject: [PATCH] feat: add ProfileUpdate schema and extend UserResponse with profile fields - Add first_name, last_name, display_name, avatar_url to UserResponse - Add ProfileUpdate schema for self-service profile editing - Add MFADisableRequest schema for password-confirmed MFA disable Co-Authored-By: Claude Opus 4.6 --- backend/app/schemas/auth.py | 6 ++++++ backend/app/schemas/user.py | 14 ++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/backend/app/schemas/auth.py b/backend/app/schemas/auth.py index 9cd7776..cba9755 100644 --- a/backend/app/schemas/auth.py +++ b/backend/app/schemas/auth.py @@ -62,3 +62,9 @@ class ChangePasswordRequest(BaseModel): old_password: str new_password: str + + +class MFADisableRequest(BaseModel): + """Password confirmation required to disable MFA.""" + + password: str diff --git a/backend/app/schemas/user.py b/backend/app/schemas/user.py index 6856aa4..abb0b7d 100644 --- a/backend/app/schemas/user.py +++ b/backend/app/schemas/user.py @@ -12,6 +12,10 @@ class UserResponse(BaseModel): id: int username: str email: str + first_name: Optional[str] = None + last_name: Optional[str] = None + display_name: Optional[str] = None + avatar_url: Optional[str] = None role: str mfa_enabled: bool is_active: bool @@ -30,6 +34,16 @@ class UserCreate(BaseModel): role: str = "dak_mitarbeiter" +class ProfileUpdate(BaseModel): + """Self-service profile update (authenticated user edits own data).""" + + first_name: Optional[str] = None + last_name: Optional[str] = None + display_name: Optional[str] = None + username: Optional[str] = None + email: Optional[EmailStr] = None + + class UserUpdate(BaseModel): """Admin-only: partial update of user fields."""