diff --git a/backend/open_webui/models/users.py b/backend/open_webui/models/users.py index 0d36d94b8f..deeda29a85 100644 --- a/backend/open_webui/models/users.py +++ b/backend/open_webui/models/users.py @@ -530,9 +530,12 @@ class UsersTable: ) -> Optional[UserModel]: try: with get_db_context(db) as db: - db.query(User).filter_by(id=id).update({"role": role}) - db.commit() user = db.query(User).filter_by(id=id).first() + if not user: + return None + user.role = role + db.commit() + db.refresh(user) return UserModel.model_validate(user) except Exception: return None @@ -542,12 +545,13 @@ class UsersTable: ) -> Optional[UserModel]: try: with get_db_context(db) as db: - db.query(User).filter_by(id=id).update( - {**form_data.model_dump(exclude_none=True)} - ) - db.commit() - user = db.query(User).filter_by(id=id).first() + if not user: + return None + for key, value in form_data.model_dump(exclude_none=True).items(): + setattr(user, key, value) + db.commit() + db.refresh(user) return UserModel.model_validate(user) except Exception: return None @@ -557,12 +561,12 @@ class UsersTable: ) -> Optional[UserModel]: try: with get_db_context(db) as db: - db.query(User).filter_by(id=id).update( - {"profile_image_url": profile_image_url} - ) - db.commit() - user = db.query(User).filter_by(id=id).first() + if not user: + return None + user.profile_image_url = profile_image_url + db.commit() + db.refresh(user) return UserModel.model_validate(user) except Exception: return None @@ -573,12 +577,12 @@ class UsersTable: ) -> Optional[UserModel]: try: with get_db_context(db) as db: - db.query(User).filter_by(id=id).update( - {"last_active_at": int(time.time())} - ) - db.commit() - user = db.query(User).filter_by(id=id).first() + if not user: + return None + user.last_active_at = int(time.time()) + db.commit() + db.refresh(user) return UserModel.model_validate(user) except Exception: return None @@ -620,12 +624,14 @@ class UsersTable: ) -> Optional[UserModel]: try: with get_db_context(db) as db: - db.query(User).filter_by(id=id).update(updated) - db.commit() - user = db.query(User).filter_by(id=id).first() + if not user: + return None + for key, value in updated.items(): + setattr(user, key, value) + db.commit() + db.refresh(user) return UserModel.model_validate(user) - # return UserModel(**user.dict()) except Exception as e: print(e) return None