mod user
This commit is contained in:
parent
f12396b1ec
commit
c8c6a72236
|
|
@ -103,6 +103,8 @@ class AuthsTable:
|
||||||
profile_image_url: str = "/user.png",
|
profile_image_url: str = "/user.png",
|
||||||
role: str = "pending",
|
role: str = "pending",
|
||||||
oauth_sub: Optional[str] = None,
|
oauth_sub: Optional[str] = None,
|
||||||
|
permissions: Optional[str] = None,
|
||||||
|
subscription: Optional[str] = None
|
||||||
) -> Optional[UserModel]:
|
) -> Optional[UserModel]:
|
||||||
with get_db() as db:
|
with get_db() as db:
|
||||||
log.info("insert_new_auth")
|
log.info("insert_new_auth")
|
||||||
|
|
@ -116,7 +118,7 @@ class AuthsTable:
|
||||||
db.add(result)
|
db.add(result)
|
||||||
|
|
||||||
user = Users.insert_new_user(
|
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()
|
db.commit()
|
||||||
|
|
@ -202,8 +204,8 @@ class AuthsTable:
|
||||||
except Exception:
|
except Exception:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
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:
|
||||||
result = Users.update_user_profile(id, name, profile_image_url, role, permissions)
|
result = Users.update_user_profile(id, name, profile_image_url, role, permissions, subscription)
|
||||||
return True if result == 1 else False
|
return True if result == 1 else False
|
||||||
|
|
||||||
Auths = AuthsTable()
|
Auths = AuthsTable()
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,7 @@ class User(Base):
|
||||||
oauth_sub = Column(Text, unique=True)
|
oauth_sub = Column(Text, unique=True)
|
||||||
|
|
||||||
permissions = Column(JSON, nullable=True)
|
permissions = Column(JSON, nullable=True)
|
||||||
|
subscription = Column(JSON, nullable=True)
|
||||||
|
|
||||||
|
|
||||||
class UserSettings(BaseModel):
|
class UserSettings(BaseModel):
|
||||||
|
|
@ -62,6 +63,8 @@ class UserModel(BaseModel):
|
||||||
oauth_sub: Optional[str] = None
|
oauth_sub: Optional[str] = None
|
||||||
|
|
||||||
permissions: Optional[dict] = None
|
permissions: Optional[dict] = None
|
||||||
|
|
||||||
|
subscription: Optional[dict] = None
|
||||||
|
|
||||||
model_config = ConfigDict(from_attributes=True)
|
model_config = ConfigDict(from_attributes=True)
|
||||||
|
|
||||||
|
|
@ -108,6 +111,8 @@ class UsersTable:
|
||||||
profile_image_url: str = "/user.png",
|
profile_image_url: str = "/user.png",
|
||||||
role: str = "pending",
|
role: str = "pending",
|
||||||
oauth_sub: Optional[str] = None,
|
oauth_sub: Optional[str] = None,
|
||||||
|
permissions: Optional[str] = None,
|
||||||
|
subscription: Optional[str] = None
|
||||||
) -> Optional[UserModel]:
|
) -> Optional[UserModel]:
|
||||||
with get_db() as db:
|
with get_db() as db:
|
||||||
user = UserModel(
|
user = UserModel(
|
||||||
|
|
@ -121,6 +126,8 @@ class UsersTable:
|
||||||
"created_at": int(time.time()),
|
"created_at": int(time.time()),
|
||||||
"updated_at": int(time.time()),
|
"updated_at": int(time.time()),
|
||||||
"oauth_sub": oauth_sub,
|
"oauth_sub": oauth_sub,
|
||||||
|
"permissions": permissions,
|
||||||
|
"subscription": subscription
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
result = User(**user.model_dump())
|
result = User(**user.model_dump())
|
||||||
|
|
@ -335,14 +342,15 @@ class UsersTable:
|
||||||
users = db.query(User).filter(User.id.in_(user_ids)).all()
|
users = db.query(User).filter(User.id.in_(user_ids)).all()
|
||||||
return [user.id for user in users]
|
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:
|
try:
|
||||||
with get_db() as db:
|
with get_db() as db:
|
||||||
result = db.query(User).filter_by(id=id).update({
|
result = db.query(User).filter_by(id=id).update({
|
||||||
"name": name,
|
"name": name,
|
||||||
"profile_image_url": profile_image_url,
|
"profile_image_url": profile_image_url,
|
||||||
"role": role,
|
"role": role,
|
||||||
"permissions": permissions
|
"permissions": permissions,
|
||||||
|
"subscription": subscription
|
||||||
})
|
})
|
||||||
db.commit()
|
db.commit()
|
||||||
return result
|
return result
|
||||||
|
|
|
||||||
|
|
@ -313,7 +313,8 @@ class OAuthManager:
|
||||||
user_data.get("name", ""),
|
user_data.get("name", ""),
|
||||||
user_data.get("profile_image_url", ""),
|
user_data.get("profile_image_url", ""),
|
||||||
user_data.get("role", self.get_user_role(None, user_data)),
|
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:
|
if not user:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue