From 4aa9050292ffd420a4889f28174d981e230f229c Mon Sep 17 00:00:00 2001 From: "l.gabrysiak" Date: Sat, 1 Mar 2025 19:44:10 +0100 Subject: [PATCH] mod auth --- backend/open_webui/models/auths.py | 16 ++++++++++++++++ backend/open_webui/utils/oauth.py | 16 +++++++++++++--- 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/backend/open_webui/models/auths.py b/backend/open_webui/models/auths.py index f07c36c..21b64cd 100644 --- a/backend/open_webui/models/auths.py +++ b/backend/open_webui/models/auths.py @@ -201,6 +201,22 @@ class AuthsTable: return False except Exception: return False + + def update_user_profile(self, id: str, name: str, profile_image_url: str, role: str) -> bool: + try: + with get_db() as db: + result = ( + db.query(Users) + .filter_by(id=id) + .update({ + "name": name, + "profile_image_url": profile_image_url, + "role": role}) + ) + db.commit() + return True if result == 1 else False + except Exception: + return False Auths = AuthsTable() diff --git a/backend/open_webui/utils/oauth.py b/backend/open_webui/utils/oauth.py index 2541b5f..e9a6257 100644 --- a/backend/open_webui/utils/oauth.py +++ b/backend/open_webui/utils/oauth.py @@ -308,9 +308,19 @@ class OAuthManager: Users.update_user_oauth_sub_by_id(user.id, provider_sub) if user: - determined_role = self.get_user_role(user, user_data) - if user.role != determined_role: - Users.update_user_role_by_id(user.id, determined_role) + #determined_role = self.get_user_role(user, user_data) + #if user.role != determined_role: + # Users.update_user_role_by_id(user.id, determined_role) + updated = Auths.update_user_profile( + user.id, + user_data.get("name", ""), + user_data.get("profile_image_url", ""), + user_data.get("role", self.get_user_role(None, user_data)) + ) + if updated: + return {"message": "Profile updated successfully."} + else: + return {"error": "Failed to update profile."} if not user: user_count = Users.get_num_users()