위협 가이드를 관리자 전용 옵션으로(기본 꺼짐) + 최고관리자 추가 + 계정 메뉴에 관리자 메뉴
- 엔진: GameDefinition.adminOnlyOptions — 방은 항상 관리자 값 사용(잠금처럼 강제, 잠금 안내는 안 띄움) - 오목·체스·장기 threatHints, 바둑 atariWarning: 기본 false, 대기실 설정에서 뺌, 관리자 화면 게임 기본 규칙에서만 켬 - 체스·장기 hints는 off / moves만 남김 - 최고관리자 기본값에 1352267557213573160 추가(.env.example·문서 포함) - 상단 계정 메뉴: 관리자·최고관리자면 [🛠 관리자 메뉴] → /admin - 테스트: admin.test(관리자 전용 옵션 강제, 두 번째 최고관리자), admin.e2e(계정 메뉴, 위협 가이드 켜기 저장) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -8,7 +8,7 @@
|
||||
## 2. 권한
|
||||
| 등급 | 누가 | 할 수 있는 것 |
|
||||
|---|---|---|
|
||||
| 슈퍼어드민 | 디스코드 ID `293719842274541579` (설정 `SUPERADMIN_DISCORD_IDS`, 기본값이 이 ID) | 모든 것: 아래 어드민 권한 + 사용자 관리 + 어드민 추가/삭제 |
|
||||
| 슈퍼어드민 | 디스코드 ID `293719842274541579`, `1352267557213573160` (설정 `SUPERADMIN_DISCORD_IDS`, 기본값이 이 두 ID) | 모든 것: 아래 어드민 권한 + 사용자 관리 + 어드민 추가/삭제 |
|
||||
| 어드민 | 슈퍼어드민이 디스코드 ID로 등록한 사람 | 관리자 사이트 보기, 게임 설정, 사이트 설정, 방 관리, 기록 보기 |
|
||||
| 일반 | 그 외(게스트 포함) | 관리자 사이트 접근 불가(관리자 주소로 들어오면 "권한이 없어요") |
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
| 관리자 | × | ○ | 어드민 목록, 디스코드 ID로 추가(메모 포함), 삭제 |
|
||||
| 기록 | ○ | ○ | 관리자 작업 기록(누가, 언제, 무엇을, 바꾸기 전/후) |
|
||||
|
||||
계정 페이지(`/me`)에 관리자에게만 [관리자 페이지] 버튼을 보여 준다.
|
||||
계정 페이지(`/me`)와 상단 계정 메뉴에 관리자에게만 [관리자 페이지]·[관리자 메뉴]를 보여 준다.
|
||||
|
||||
## 4. 게임 설정 (게임마다)
|
||||
| 항목 | 설명 |
|
||||
@@ -42,6 +42,7 @@
|
||||
|
||||
- 화면의 입력 칸은 게임 모듈의 옵션 스키마(zod → JSON Schema)에서 **자동으로 만든다**. 새 옵션이 생기면 관리자 화면에 자동으로 나타나므로 빠지는 항목이 없다.
|
||||
- 그래서 모든 게임 모듈은 옵션마다 한국어 제목과 선택지 이름을 `meta`로 붙인다(`09-game-engine.md` 2절). 게임 규칙 안에 숫자로 박혀 있던 값(예: 오목 자동 착수 허용 횟수, 무승부 재제안 간격)도 옵션으로 꺼내서 관리자가 바꿀 수 있게 한다.
|
||||
- **관리자 전용 옵션**: 게임 모듈의 `adminOnlyOptions`에 적힌 옵션은 대기실 설정에 나오지 않고, 잠금과 같이 항상 관리자 값으로 고정된다. 지금은 위협 가이드(상대 수를 막으라는 표시)가 여기에 해당하고 기본은 꺼짐: 오목·체스·장기 `threatHints`, 바둑 `atariWarning`. 켜려면 관리자 화면 → 게임 → 기본 규칙에서 켠다.
|
||||
- 저장할 때 스키마로 검사하고, 통과하지 못하면 저장하지 않는다.
|
||||
- 바꾼 설정은 **새로 만드는 방과 새로 시작하는 판**부터 적용된다. 진행 중인 판의 규칙은 중간에 바뀌지 않는다(공정성).
|
||||
|
||||
|
||||
Reference in New Issue
Block a user