5252 User ,
5353 UserRead ,
5454 UserCreate ,
55+ UserCreateRequest ,
5556 UserUpdate ,
57+ UserUpdateRequest ,
5658 UserGroup ,
5759)
5860from .metrics import Metrics
@@ -157,7 +159,7 @@ def get_current_superuser(user: User = Depends(
157159
158160@app .post ("/user/register" , response_model = UserRead , tags = ["user" ],
159161 response_model_by_alias = False )
160- async def register (request : Request , user : UserCreate ,
162+ async def register (request : Request , user : UserCreateRequest ,
161163 current_user : User = Depends (get_current_superuser )):
162164 """User registration route
163165
@@ -183,9 +185,11 @@ async def register(request: Request, user: UserCreate,
183185 detail = f"User group does not exist with name: \
184186 { group_name } " )
185187 groups .append (group )
186- user .groups = groups
188+ user_create = UserCreate (** (user .model_dump (
189+ exclude = {'groups' }, exclude_none = True )))
190+ user_create .groups = groups
187191 created_user = await register_router .routes [0 ].endpoint (
188- request , user , user_manager )
192+ request , user_create , user_manager )
189193 # Update user to be an admin user explicitly if requested as
190194 # `fastapi-users` register route does not allow it
191195 if user .is_superuser :
@@ -233,7 +237,7 @@ async def register(request: Request, user: UserCreate,
233237
234238@app .patch ("/user/me" , response_model = UserRead , tags = ["user" ],
235239 response_model_by_alias = False )
236- async def update_me (request : Request , user : UserUpdate ,
240+ async def update_me (request : Request , user : UserUpdateRequest ,
237241 current_user : User = Depends (get_current_user )):
238242 """User update route
239243
@@ -258,15 +262,17 @@ async def update_me(request: Request, user: UserUpdate,
258262 detail = f"User group does not exist with name: \
259263 { group_name } " )
260264 groups .append (group )
265+ user_update = UserUpdate (** (user .model_dump (
266+ exclude = {'groups' }, exclude_none = True )))
261267 if groups :
262- user .groups = groups
268+ user_update .groups = groups
263269 return await users_router .routes [1 ].endpoint (
264- request , user , current_user , user_manager )
270+ request , user_update , current_user , user_manager )
265271
266272
267273@app .patch ("/user/{user_id}" , response_model = UserRead , tags = ["user" ],
268274 response_model_by_alias = False )
269- async def update_user (user_id : str , request : Request , user : UserUpdate ,
275+ async def update_user (user_id : str , request : Request , user : UserUpdateRequest ,
270276 current_user : User = Depends (get_current_superuser )):
271277 """Router to allow admin users to update other user account"""
272278 metrics .add ('http_requests_total' , 1 )
@@ -295,11 +301,14 @@ async def update_user(user_id: str, request: Request, user: UserUpdate,
295301 detail = f"User group does not exist with name: \
296302 { group_name } " )
297303 groups .append (group )
304+ user_update = UserUpdate (** (user .model_dump (
305+ exclude = {'groups' }, exclude_none = True )))
306+
298307 if groups :
299- user .groups = groups
308+ user_update .groups = groups
300309
301310 updated_user = await users_router .routes [3 ].endpoint (
302- user , request , user_from_id , user_manager
311+ user_update , request , user_from_id , user_manager
303312 )
304313 # Update user to be an admin user explicitly if requested as
305314 # `fastapi-users` user update route does not allow it
0 commit comments