v4.0.10: 관리자 계정 변경 안전장치와 접속시간 지표 추가
역할 변경은 명시적으로 버튼을 눌렀을 때만 가능하게 제한하고, 마지막 접속시간과 비밀번호 분실 안내를 추가해 운영 관리성을 높인다. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1,5 +1,15 @@
|
||||
# 의사결정 이력
|
||||
|
||||
## 2026-06-23 v4.0.10 — 위험한 관리자 변경은 명시적 동작으로 제한
|
||||
|
||||
💡 역할 변경은 빈도가 낮고 영향이 커서 상시 노출보다 의도적 진입이 안전하기 때문.
|
||||
🔧 관리자 회원 수정 모달의 역할 선택을 기본 숨김으로 두고 버튼 클릭 시에만 표시.
|
||||
|
||||
## 2026-06-23 v4.0.10 — 사용자 마지막 접속 시각을 운영 지표로 기록
|
||||
|
||||
💡 관리자 화면에서 실제 이용 활성도를 빠르게 판단할 기준이 필요하기 때문.
|
||||
🔧 로그인 성공 시 `users.last_login_at`을 저장하고 회원 목록에 상대시간으로 표시.
|
||||
|
||||
## 2026-06-19 v4.0.9 — 관리자 회원 목록에 덱 이용률 표시
|
||||
|
||||
💡 사이트 이용 현황을 관리자가 한눈에 파악할 수 있어야 하기 때문.
|
||||
|
||||
@@ -88,7 +88,7 @@ script/ads.js
|
||||
|
||||
```text
|
||||
관리자·로그인·회원가입
|
||||
admin.html (회원 2열·덱 공개/전체 통계), login.html, signup.html — Tailwind 유틸리티
|
||||
admin.html (회원 2열·덱 공개/전체 통계·마지막 접속·역할 변경 버튼 노출), login.html (비밀번호 분실 메일 안내), signup.html — Tailwind 유틸리티
|
||||
|
||||
내 덱·공개 덱·프로필
|
||||
deckHistory.html, preset.html, profile.html — HTML 클래스 + components.css
|
||||
|
||||
@@ -120,6 +120,7 @@
|
||||
| `is_active` | 계정 활성 상태 |
|
||||
| `default_deck_public` | 덱 저장 기본 공개 여부 |
|
||||
| `skip_deck_public_prompt` | 저장 시 공개 확인 생략 여부 |
|
||||
| `last_login_at` | 마지막 로그인 시각 |
|
||||
| `created_at`, `updated_at` | 생성·수정 시각 |
|
||||
|
||||
### `decks`
|
||||
@@ -160,7 +161,7 @@
|
||||
| Method | Path | 권한 | 기능 |
|
||||
|---|---|---|---|
|
||||
| POST | `/api/v1/auth/register` | 공개 | 회원가입 |
|
||||
| POST | `/api/v1/auth/login` | 공개 | 로그인과 JWT 발급 |
|
||||
| POST | `/api/v1/auth/login` | 공개 | 로그인과 JWT 발급, `last_login_at` 갱신 |
|
||||
| GET | `/api/v1/auth/me` | 회원 | 내 정보 |
|
||||
| PUT | `/api/v1/auth/me` | 회원 | 프로필·덱 저장 설정 변경 |
|
||||
| POST | `/api/v1/auth/me/password` | 회원 | 비밀번호 변경 |
|
||||
@@ -186,8 +187,8 @@
|
||||
|
||||
| Method | Path | 기능 |
|
||||
|---|---|---|
|
||||
| GET | `/api/v1/admin/users` | 회원 목록·검색 (`deckPublic`, `deckTotal` 포함) |
|
||||
| GET | `/api/v1/admin/users/:id` | 회원 상세 (`deckPublic`, `deckTotal`, `deckCount` 호환) |
|
||||
| GET | `/api/v1/admin/users` | 회원 목록·검색 (`deckPublic`, `deckTotal`, `lastLoginAt` 포함) |
|
||||
| GET | `/api/v1/admin/users/:id` | 회원 상세 (`deckPublic`, `deckTotal`, `deckCount`, `lastLoginAt` 포함) |
|
||||
| PUT | `/api/v1/admin/users/:id` | 회원 정보·역할·활성 상태 변경 |
|
||||
| POST | `/api/v1/admin/users/:id/reset-password` | 비밀번호 초기화 |
|
||||
| GET | `/api/v1/admin/decks` | 전체 덱 목록 |
|
||||
|
||||
@@ -1,5 +1,14 @@
|
||||
# 업데이트 이력
|
||||
|
||||
## 2026-06-23 / v4.0.10 — 관리자 권한 변경 안전장치·접속 시간 표시
|
||||
|
||||
### 수행 작업
|
||||
- `admin.html` 회원 수정 모달에서 역할 선택 UI를 기본 숨김으로 전환하고, `역할 변경하기` 버튼을 눌렀을 때만 노출
|
||||
- 회원 카드에 마지막 접속 상대시간(`분/시간/일/달 전`) 표시 추가
|
||||
- `users` 스키마에 `last_login_at` 컬럼 추가(마이그레이션 포함), 로그인 성공 시 마지막 접속 시각 기록
|
||||
- `GET /api/v1/admin/users`, `GET /api/v1/admin/users/:id` 응답에 `lastLoginAt` 포함
|
||||
- `login.html`에 비밀번호 분실 시 `zenn@sori.studio` 문의 안내 문구 추가
|
||||
|
||||
## 2026-06-19 / v4.0.9 — 관리자 회원 목록 2열·덱 이용 통계
|
||||
|
||||
### 수행 작업
|
||||
|
||||
Reference in New Issue
Block a user