mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-09-05 15:38:19 +08:00
fix user
This commit is contained in:
@@ -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
@@ -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
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user