Files
jongryangje/docs/완료된_개발_내역/관리자단/03-컨트롤러.md
2026-04-08 00:23:55 +09:00

60 lines
1.9 KiB
Markdown

# 관리자단 — 컨트롤러
## 공통
- 네임스페이스: `App\Controllers\Admin`
- 모든 응답은 `admin/layout`으로 감싸서 `title`, `content` 전달. 본문은 하위 뷰에서 렌더.
---
## Dashboard
- **파일**: `app/Controllers/Admin/Dashboard.php`
- **메서드**: `index()` — 대시보드 뷰만 표시.
---
## User (회원 관리)
- **파일**: `app/Controllers/Admin/User.php`
- **의존**: `MemberModel`, `Config\Roles`
| 메서드 | 역할 |
|--------|------|
| `index()` | 회원 목록 (목록 뷰 + roles) |
| `create()` | 회원 등록 폼 |
| `store()` | 등록 처리: 유효성 검사 → 비밀번호 해시 → insert, redirect `admin/users` |
| `edit($id)` | 수정 폼 (회원 없으면 redirect) |
| `update($id)` | 수정 처리: 유효성(비밀번호 선택), mb_state 포함, redirect `admin/users` |
| `delete($id)` | 탈퇴 처리: `mb_state=0`, `mb_leavedate` 설정 후 redirect (물리 삭제 없음) |
- 삭제는 **탈퇴 처리**만 수행. 5년 유지 정책은 별도 스케줄/정책으로 구현 예정.
---
## Access (접근 관리)
- **파일**: `app/Controllers/Admin/Access.php`
- **의존**: `MemberLogModel`
| 메서드 | 역할 |
|--------|------|
| `loginHistory()` | GET `start`/`end` 기간으로 로그 이력 조회, 뷰에 list/start/end 전달 |
| `approvals()` | 권한 승인 대기 목록 (현재 빈 목록, 추후 테이블 연동) |
| `approve($id)` | 승인 처리 플레이스홀더 (redirect + success) |
| `reject($id)` | 반려 처리 플레이스홀더 (redirect + success) |
---
## Role (역할)
- **파일**: `app/Controllers/Admin/Role.php`
- **메서드**: `index()``Config\Roles``levelNames` 목록만 뷰에 전달. (role 테이블 미사용, 추후 확장 가능)
---
## Menu (메뉴)
- **파일**: `app/Controllers/Admin/Menu.php`
- **메서드**: `index()` — 메뉴 관리 안내 뷰만 표시. (menu·menu_permission 테이블 연동은 추후)