관리자 관리

ADMINS · /admins

실제 화면 열기 ↗
종류
목록
부르는 것
1
lib 함수
가드레일
3
64
로그인 필요운영

화면

관리자 세션으로 촬영한 실제 화면입니다.

ADMINS 캡처

이 화면이 부르는 것

  • ·listAdminAccounts()
소스 src/app/(console)/admins/page.tsx

같은 규칙을 쓰는 화면

이 화면 하나뿐입니다.

개발 스펙

ADMIN-ACCOUNTS완료이 스펙은 1개 화면이 함께 씁니다

이 화면에서 할 수 있어야 하는 것 (2)

  • 관리자 계정 목록과 승인 상태를 본다.
  • 승인을 켜고 끈다 — 끄면 그 계정은 로그인하지 못한다.

비즈니스 규칙 (3)

  • 비밀번호는 조회 쿼리에서 아예 읽지 않는다. 화면에 나갈 이유가 없다.
  • 자기 계정은 승인 해제할 수 없다 — 아무도 못 들어오는 상황이 생긴다.
  • 계정 생성과 비밀번호 변경은 만들지 않았다. 권한 상승 경로다.

API (2)

메서드경로권한모듈 · 설명
GET/api/identity/admin/accounts관리자
관리자 계정 목록. 비밀번호는 담기지 않는다.
domains:identity:identity-web
POST/api/identity/admin/accounts/{id}/approval관리자
승인 토글.
domains:identity:identity-web
400 CANNOT_DISABLE_SELF

가드레일 (3) — id 가 곧 테스트 이름이다

id반드시 만족해야 하는 것등급
admin-account-no-password-exposure
계정 목록 응답에 비밀번호가 실리면 안 된다.
critical
admin-account-no-self-lockout
자기 계정을 스스로 승인 해제할 수 없어야 한다.
아무도 로그인할 수 없는 상태가 만들어진다.
high
admin-no-account-creation
계정 생성 폼이 없어야 한다 — 권한 체계를 확인하기 전까지.
normal

구현 계획 (4/4)

  1. AdminAccountRepository — 비밀번호를 읽지 않는다identity-domain
  2. AdminAccountUseCase — 자기 계정 잠금 방지identity-app
  3. GET/POST /api/identity/admin/accountsidentity-web
  4. 목록 · 승인 토글wvctesol-admin

서버 사이드 구현 계획 — 자바 객체별 요구사항 (1/1)

객체모듈책임 · 지켜야 할 것
AdminAccountUseCase
service
identity-app
관리자 계정 조회·승인.
  • 조회와 승인 토글까지만 한다.
  • 계정 생성·비밀번호 변경은 권한 체계(auth 컬럼) 확인 후에 붙인다.
  • 자기 계정 승인 해제를 막는다.

테스트 방법 (3)

가드레일종류확인 방법
admin-account-no-password-exposureintegration응답 JSON 에 pw · password 필드가 없다
admin-account-no-self-lockoutintegration자기 id 로 approved=false → 400 CANNOT_DISABLE_SELF
admin-no-account-creatione2e화면에 password 입력칸이 0개, 안내 문구가 보인다

정하지 못한 것 · 확인이 필요한 것

  • 계정 생성과 비밀번호 변경은 원본 auth 컬럼의 권한 체계를 확인한 뒤에 만든다.