This commit is contained in:
jxxghp
2024-07-09 08:25:22 +08:00
parent 47b276795f
commit 3d2b645bfc
3 changed files with 21 additions and 4 deletions
+1 -1
View File
@@ -17,7 +17,7 @@ router = APIRouter()
@router.get("/", summary="所有用户", response_model=List[schemas.User]) @router.get("/", summary="所有用户", response_model=List[schemas.User])
def read_users( def list_users(
db: Session = Depends(get_db), db: Session = Depends(get_db),
current_user: User = Depends(get_current_active_superuser), current_user: User = Depends(get_current_active_superuser),
) -> Any: ) -> Any:
+2 -2
View File
@@ -2,7 +2,7 @@ import json
from typing import Any, Self, List from typing import Any, Self, List
from typing import Tuple, Optional, Generator from typing import Tuple, Optional, Generator
from sqlalchemy import create_engine, QueuePool from sqlalchemy import create_engine, QueuePool, and_
from sqlalchemy import inspect from sqlalchemy import inspect
from sqlalchemy.orm import declared_attr from sqlalchemy.orm import declared_attr
from sqlalchemy.orm import sessionmaker, Session, scoped_session, as_declarative from sqlalchemy.orm import sessionmaker, Session, scoped_session, as_declarative
@@ -167,7 +167,7 @@ class Base:
@classmethod @classmethod
@db_update @db_update
def delete(cls, db: Session, rid): def delete(cls, db: Session, rid):
db.query(cls).filter(cls.id == rid).delete() db.query(cls).filter(and_(cls.id == rid)).delete()
@classmethod @classmethod
@db_update @db_update
+18 -1
View File
@@ -1,6 +1,7 @@
import json
from typing import Optional from typing import Optional
from pydantic import BaseModel from pydantic import BaseModel, validator
# Shared properties # Shared properties
@@ -17,6 +18,22 @@ class UserBase(BaseModel):
avatar: Optional[str] = None avatar: Optional[str] = None
# 是否开启二次验证 # 是否开启二次验证
is_otp: Optional[bool] = False is_otp: Optional[bool] = False
# 权限
permissions: Optional[dict] = {}
# 个性化设置
settings: Optional[dict] = {}
@validator('permissions', 'settings', pre=True)
def parse_json_fields(cls, value):
if value:
try:
return json.loads(value)
except json.JSONDecodeError:
raise ValueError(f"Invalid JSON string: {value}")
return {}
class Config:
orm_mode = True
# Properties to receive via API on creation # Properties to receive via API on creation