fix: episodes GET 接口放开给三角色,POST/PATCH/DELETE 保持仅 zhipianren/zebian
This commit is contained in:
@@ -14,14 +14,19 @@ from app.schemas.episode import EpisodeCreate, EpisodeResponse, EpisodeUpdate
|
|||||||
router = APIRouter(prefix="/api/episodes", tags=["节目期次"])
|
router = APIRouter(prefix="/api/episodes", tags=["节目期次"])
|
||||||
|
|
||||||
|
|
||||||
|
def require_read_role():
|
||||||
|
"""GET 接口的鉴权:三个角色都可读"""
|
||||||
|
return require_role(UserRole.zhipianren, UserRole.zebian, UserRole.biandao)
|
||||||
|
|
||||||
|
|
||||||
@router.get("", response_model=list[EpisodeResponse])
|
@router.get("", response_model=list[EpisodeResponse])
|
||||||
def list_episodes(
|
def list_episodes(
|
||||||
limit: int = 50,
|
limit: int = 50,
|
||||||
offset: int = 0,
|
offset: int = 0,
|
||||||
session: Session = Depends(get_session),
|
session: Session = Depends(get_session),
|
||||||
current_user: User = Depends(require_role(UserRole.zhipianren, UserRole.zebian)),
|
current_user: User = Depends(require_read_role()),
|
||||||
):
|
):
|
||||||
"""获取节目期次列表(仅管理员/责编)。按播出日期倒序。"""
|
"""获取节目期次列表(三角色都可读)。按播出日期倒序。"""
|
||||||
statement = select(Episode).order_by(Episode.air_date.desc()).offset(offset).limit(limit)
|
statement = select(Episode).order_by(Episode.air_date.desc()).offset(offset).limit(limit)
|
||||||
episodes = session.exec(statement).all()
|
episodes = session.exec(statement).all()
|
||||||
return episodes
|
return episodes
|
||||||
@@ -31,9 +36,9 @@ def list_episodes(
|
|||||||
def get_episode(
|
def get_episode(
|
||||||
episode_id: int,
|
episode_id: int,
|
||||||
session: Session = Depends(get_session),
|
session: Session = Depends(get_session),
|
||||||
current_user: User = Depends(require_role(UserRole.zhipianren, UserRole.zebian)),
|
current_user: User = Depends(require_read_role()),
|
||||||
):
|
):
|
||||||
"""根据 ID 获取单期节目(仅管理员/责编)。"""
|
"""根据 ID 获取单期节目(三角色都可读)。"""
|
||||||
episode = session.get(Episode, episode_id)
|
episode = session.get(Episode, episode_id)
|
||||||
if episode is None:
|
if episode is None:
|
||||||
raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail="期次不存在")
|
raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail="期次不存在")
|
||||||
|
|||||||
Reference in New Issue
Block a user