# 관리자단 — 컨트롤러 ## 공통 - 네임스페이스: `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 테이블 연동은 추후)