Browse Source

fix: user settings save issue

Timothy Jaeryang Baek 2 months ago
parent
commit
cd2f4142d5
2 changed files with 19 additions and 1 deletions
  1. 18 0
      backend/open_webui/models/users.py
  2. 1 1
      backend/open_webui/routers/users.py

+ 18 - 0
backend/open_webui/models/users.py

@@ -271,6 +271,24 @@ class UsersTable:
         except Exception:
         except Exception:
             return None
             return None
 
 
+    def update_user_settings_by_id(self, id: str, updated: dict) -> Optional[UserModel]:
+        try:
+            with get_db() as db:
+                user_settings = db.query(User).filter_by(id=id).first().settings
+
+                if user_settings is None:
+                    user_settings = {}
+
+                user_settings.update(updated)
+
+                db.query(User).filter_by(id=id).update({"settings": user_settings})
+                db.commit()
+
+                user = db.query(User).filter_by(id=id).first()
+                return UserModel.model_validate(user)
+        except Exception:
+            return None
+
     def delete_user_by_id(self, id: str) -> bool:
     def delete_user_by_id(self, id: str) -> bool:
         try:
         try:
             # Remove User from Groups
             # Remove User from Groups

+ 1 - 1
backend/open_webui/routers/users.py

@@ -153,7 +153,7 @@ async def get_user_settings_by_session_user(user=Depends(get_verified_user)):
 async def update_user_settings_by_session_user(
 async def update_user_settings_by_session_user(
     form_data: UserSettings, user=Depends(get_verified_user)
     form_data: UserSettings, user=Depends(get_verified_user)
 ):
 ):
-    user = Users.update_user_by_id(user.id, {"settings": form_data.model_dump()})
+    user = Users.update_user_settings_by_id(user.id, form_data.model_dump())
     if user:
     if user:
         return user.settings
         return user.settings
     else:
     else: