From 59f556d9862d2f6e7d89384776f9da1c9f65235d Mon Sep 17 00:00:00 2001 From: simonkoson <28867558@qq.com> Date: Fri, 22 May 2026 18:27:28 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20episodes=20GET=20=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E6=94=BE=E5=BC=80=E7=BB=99=E4=B8=89=E8=A7=92=E8=89=B2=EF=BC=8C?= =?UTF-8?q?POST/PATCH/DELETE=20=E4=BF=9D=E6=8C=81=E4=BB=85=20zhipianren/ze?= =?UTF-8?q?bian?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/app/api/episodes.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/backend/app/api/episodes.py b/backend/app/api/episodes.py index 0d74e69..84dadcf 100644 --- a/backend/app/api/episodes.py +++ b/backend/app/api/episodes.py @@ -14,14 +14,19 @@ from app.schemas.episode import EpisodeCreate, EpisodeResponse, EpisodeUpdate 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]) def list_episodes( limit: int = 50, offset: int = 0, 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) episodes = session.exec(statement).all() return episodes @@ -31,9 +36,9 @@ def list_episodes( def get_episode( episode_id: int, 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) if episode is None: raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail="期次不存在")