This commit is contained in:
l.gabrysiak 2025-03-01 23:11:13 +01:00
parent f12396b1ec
commit c8c6a72236
3 changed files with 17 additions and 6 deletions

View File

@ -103,6 +103,8 @@ class AuthsTable:
profile_image_url: str = "/user.png",
role: str = "pending",
oauth_sub: Optional[str] = None,
permissions: Optional[str] = None,
subscription: Optional[str] = None
) -> Optional[UserModel]:
with get_db() as db:
log.info("insert_new_auth")
@ -116,7 +118,7 @@ class AuthsTable:
db.add(result)
user = Users.insert_new_user(
id, name, email, profile_image_url, role, oauth_sub
id, name, email, profile_image_url, role, oauth_sub, permissions, subscription
)
db.commit()
@ -202,8 +204,8 @@ class AuthsTable:
except Exception:
return False
def update_user_profile(self, id: str, name: str, profile_image_url: str, role: str, permissions: dict) -> bool:
result = Users.update_user_profile(id, name, profile_image_url, role, permissions)
def update_user_profile(self, id: str, name: str, profile_image_url: str, role: str, permissions: dict, subscription: dict) -> bool:
result = Users.update_user_profile(id, name, profile_image_url, role, permissions, subscription)
return True if result == 1 else False
Auths = AuthsTable()

View File

@ -36,6 +36,7 @@ class User(Base):
oauth_sub = Column(Text, unique=True)
permissions = Column(JSON, nullable=True)
subscription = Column(JSON, nullable=True)
class UserSettings(BaseModel):
@ -62,6 +63,8 @@ class UserModel(BaseModel):
oauth_sub: Optional[str] = None
permissions: Optional[dict] = None
subscription: Optional[dict] = None
model_config = ConfigDict(from_attributes=True)
@ -108,6 +111,8 @@ class UsersTable:
profile_image_url: str = "/user.png",
role: str = "pending",
oauth_sub: Optional[str] = None,
permissions: Optional[str] = None,
subscription: Optional[str] = None
) -> Optional[UserModel]:
with get_db() as db:
user = UserModel(
@ -121,6 +126,8 @@ class UsersTable:
"created_at": int(time.time()),
"updated_at": int(time.time()),
"oauth_sub": oauth_sub,
"permissions": permissions,
"subscription": subscription
}
)
result = User(**user.model_dump())
@ -335,14 +342,15 @@ class UsersTable:
users = db.query(User).filter(User.id.in_(user_ids)).all()
return [user.id for user in users]
def update_user_profile(self, id: str, name: str, profile_image_url: str, role: str, permissions: dict) -> bool:
def update_user_profile(self, id: str, name: str, profile_image_url: str, role: str, permissions: dict, subscription: dict) -> bool:
try:
with get_db() as db:
result = db.query(User).filter_by(id=id).update({
"name": name,
"profile_image_url": profile_image_url,
"role": role,
"permissions": permissions
"permissions": permissions,
"subscription": subscription
})
db.commit()
return result

View File

@ -313,7 +313,8 @@ class OAuthManager:
user_data.get("name", ""),
user_data.get("profile_image_url", ""),
user_data.get("role", self.get_user_role(None, user_data)),
user_data.get("permissions", None)
user_data.get("permissions", None),
user_data.get("subscription", None)
)
if not user: