Skip to content

여러 기수 소속 회원이 현재 기수 명단에서 빠지는 문제 및 기수 init API 권한 누락 #569

Description

@uykm

버그 설명

여러 기수에 소속된 회원이 현재 기수 명단에서 빠지는 문제가 있어요. 기수 init API는 권한 체크 없이 호출할 수 있어요.

재현 (dev, 2026-09-29)

  • 18기 운영진 계정(21918)으로 POST /v1/members/authority/cohort/init/1/21918(17기) 호출
  • member_cohorts에 17기 행이 18기 행보다 나중에 추가됨 → "최신 소속"이 17기로 바뀜
  • 이후 GET /v1/sessions/weeks 403 (18기 운영진 권한 무시)

원인

  • "X기 회원 명단" 조회들이 max(member_cohort_id), 즉 마지막에 추가된 소속 행 하나만 보고 판단해요.
    • MemberRepository.findAllByCohortId / findAllByCohort / findAllMemberIdsByCohortIdAndAuthorityId / findAllOrderedByHighestCohortAndStatus, Member.latestMemberCohort()
    • 영향: 세션 생성 시 출석부, 공지 읽음·푸시, 세션·공지 리마인더, 회식 초대, 과제 제출 행, 어드민 회원 목록 기수·is_admin 표시, /me의 cohort
  • 과거 기수 행이 나중에 추가되면 현재 기수 명단에서 에러 없이 빠져요.
  • POST /v1/members/authority/cohort/init/{cohortId}/{memberId}에 @PreAuthorize가 없고 /v1/**가 permitAll이라 prod에서도 비로그인 호출이 가능해요.

PR #562 머지 후에도 권한 판정(403)만 해결되고 명단 누락 문제는 남아요.

할 일

  • 기수를 인자로 받는 명단 조회를 "해당 기수 소속 행이 있으면 포함"으로 변경 (여러 기수 소속이면 모든 기수 명단에 포함)
  • 하나만 보여줘야 하는 곳(마이페이지·회원 목록의 기수 표시)은 입력 순서가 아닌 가장 높은 기수 기준으로 변경
  • 기수 init API에 @PreAuthorize("hasAuthority('update:member')") 추가

ETC

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions