관리자 관리
ADMINS · /admins
종류
목록
부르는 것
1
lib 함수
가드레일
3
줄
64
로그인 필요운영
화면
관리자 세션으로 촬영한 실제 화면입니다.

이 화면이 부르는 것
- ·
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-web400 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)
- ●AdminAccountRepository — 비밀번호를 읽지 않는다
identity-domain - ●AdminAccountUseCase — 자기 계정 잠금 방지
identity-app - ●GET/POST /api/identity/admin/accounts
identity-web - ●목록 · 승인 토글
wvctesol-admin
서버 사이드 구현 계획 — 자바 객체별 요구사항 (1/1)
| 객체 | 모듈 | 책임 · 지켜야 할 것 |
|---|---|---|
● AdminAccountUseCaseservice | identity-app | 관리자 계정 조회·승인.
|
테스트 방법 (3)
| 가드레일 | 종류 | 확인 방법 |
|---|---|---|
admin-account-no-password-exposure | integration | 응답 JSON 에 pw · password 필드가 없다 |
admin-account-no-self-lockout | integration | 자기 id 로 approved=false → 400 CANNOT_DISABLE_SELF |
admin-no-account-creation | e2e | 화면에 password 입력칸이 0개, 안내 문구가 보인다 |
정하지 못한 것 · 확인이 필요한 것
- 계정 생성과 비밀번호 변경은 원본 auth 컬럼의 권한 체계를 확인한 뒤에 만든다.