From 9c7694f2e550aa0b05aca9c29a41af5619c9c900 Mon Sep 17 00:00:00 2001 From: "l.gabrysiak" Date: Sat, 1 Mar 2025 20:47:25 +0100 Subject: [PATCH] mod auth --- backend/open_webui/models/auths.py | 5 +++-- backend/open_webui/models/users.py | 19 +++++++++---------- backend/open_webui/utils/oauth.py | 9 +-------- 3 files changed, 13 insertions(+), 20 deletions(-) diff --git a/backend/open_webui/models/auths.py b/backend/open_webui/models/auths.py index 659f7da..cceb4b1 100644 --- a/backend/open_webui/models/auths.py +++ b/backend/open_webui/models/auths.py @@ -202,7 +202,8 @@ class AuthsTable: except Exception: return False - def update_user_profile(self, id: str, name: str, profile_image_url: str, role: str) -> bool: - return Users.update_user_profile(id, name, profile_image_url, role) + def update_user_profile(self, id: str, name: str, profile_image_url: str, role: str) -> bool: + result = Users.update_user_profile(id, name, profile_image_url, role) + return True if result == 1 else False Auths = AuthsTable() diff --git a/backend/open_webui/models/users.py b/backend/open_webui/models/users.py index 65e336b..38a695a 100644 --- a/backend/open_webui/models/users.py +++ b/backend/open_webui/models/users.py @@ -9,7 +9,7 @@ from open_webui.models.groups import Groups from pydantic import BaseModel, ConfigDict -from sqlalchemy import BigInteger, Column, String, Text +from sqlalchemy import BigInteger, Column, String, Text, JSON #################### # User DB Schema @@ -34,6 +34,8 @@ class User(Base): info = Column(JSONField, nullable=True) oauth_sub = Column(Text, unique=True) + + permissions = Column(JSON, nullable=True) class UserSettings(BaseModel): @@ -58,8 +60,11 @@ class UserModel(BaseModel): info: Optional[dict] = None oauth_sub: Optional[str] = None + + permissions: Optional[dict] = None model_config = ConfigDict(from_attributes=True) + #################### @@ -339,14 +344,8 @@ class UsersTable: "role": role }) db.commit() - if result == 1: - print(f"User profile updated successfully: id={id}, name={name}") - return True - else: - print(f"Failed to update user profile: id={id}, name={name}") - return False - except Exception as e: - print(f"Error updating user profile: {e}") - return False + return result + except Exception: + return 0 Users = UsersTable() diff --git a/backend/open_webui/utils/oauth.py b/backend/open_webui/utils/oauth.py index e9a6257..49e8aa4 100644 --- a/backend/open_webui/utils/oauth.py +++ b/backend/open_webui/utils/oauth.py @@ -308,19 +308,12 @@ 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) - updated = Auths.update_user_profile( + 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()