4.5 KiB
4.5 KiB
Super Admin 지자체 선택 흐름
Super admin이 로그인 시 지자체를 하나 선택한 뒤, 해당 지자체 관리자와 동일한 화면/권한으로 사용하고, 필요 시 지자체를 전환하는 방식 정리.
1. 목적
- Super admin이 전체 지자체 데이터를 한꺼번에 보지 않고, 선택한 한 지자체 기준으로만 화면이 보이게 한다.
- 지자체 관리자와 동일한 UX로 사용해 테스트·지원·교육을 단순화한다.
- 실수로 다른 지자체 데이터를 조회·수정하는 것을 줄인다.
2. 흐름 요약
| 단계 | Super Admin | 지자체 관리자 |
|---|---|---|
| 로그인 직후 | 지자체 선택 화면으로 이동 → 목록에서 하나 선택 | 관리자 대시보드로 바로 이동 |
| 관리자 사용 중 | 선택한 지자체의 데이터만 조회·등록·수정 (지자체 관리자와 동일) | 소속 지자체(mb_lg_idx) 데이터만 조회·등록·수정 |
| 지자체 전환 | 상단 「지자체 전환」 메뉴로 선택 화면 이동 → 다른 지자체 선택 가능 | 해당 없음 (소속 지자체 고정) |
| 지자체 등록/목록 | 「지자체」 메뉴로 전체 지자체 CRUD (시스템 설정 용도) | 메뉴 비노출 |
3. 세션·권한 규칙
3-1. 세션 값
admin_selected_lg_idx(int|null)- Super admin이 선택한 지자체 PK.
- 지자체 선택 화면에서 선택 시 설정, 지자체 전환 시 변경.
- 지자체 관리자
mb_lg_idx만 사용하며admin_selected_lg_idx는 사용하지 않음.
3-2. “효과 지자체”(effective lg)
관리자 페이지에서 데이터 필터·등록 시 사용하는 지자체는 다음 규칙으로 결정한다.
| mb_level | 효과 지자체 |
|---|---|
| 4 (Super Admin) | session('admin_selected_lg_idx') |
| 3 (지자체 관리자) | session('mb_lg_idx') |
- 컨트롤러·쿼리에서는 위 값을 effective lg_idx로 사용해
WHERE lg_idx = ?등을 적용한다. - 구현 시 헬퍼
admin_effective_lg_idx()로 일괄 조회한다.
3-3. 접근 제어
- Super admin
admin_selected_lg_idx가 없으면 관리자 대시보드 등 다른 admin URL 접근 시 지자체 선택 화면(/admin/select-local-government) 으로 리다이렉트.admin/select-local-government자체는admin_selected_lg_idx없이 접근 가능.
- 지자체 관리자
- 지자체 선택 화면으로 보내지 않으며, 항상
mb_lg_idx로 동작.
- 지자체 선택 화면으로 보내지 않으며, 항상
4. 화면·메뉴
4-1. 지자체 선택 화면 (/admin/select-local-government)
- 노출 대상: Super admin만 (지자체 관리자는 이 URL로 유도되지 않음).
- 내용: 사용 가능한 지자체(
lg_state=1) 목록. 하나 선택 후 제출하면admin_selected_lg_idx저장 후/admin으로 이동. - 지자체 전환: 관리자 레이아웃 상단의 「지자체 전환」 클릭 시 동일 화면으로 이동해 다른 지자체 선택 가능.
4-2. 관리자 레이아웃
- Super admin
- 지자체 전환: 상단 메뉴에 표시, 클릭 시
/admin/select-local-government이동. - 현재 선택 지자체: 상단에 현재 선택된 지자체명 표시(선택된 경우).
- 지자체: 기존처럼 전체 지자체 CRUD용 메뉴 유지 (지자체 등록/목록).
- 지자체 전환: 상단 메뉴에 표시, 클릭 시
- 지자체 관리자
- 지자체 전환 메뉴 비노출, 지자체 메뉴(전체 CRUD) 비노출.
5. 기능별 동작
- 지정판매소 목록/등록
- Super admin:
admin_selected_lg_idx기준으로 해당 지자체 지정판매소만 조회·등록. - 지자체 관리자:
mb_lg_idx기준 (기존과 동일).
- Super admin:
- 지자체 목록/등록 (지자체 메뉴)
- Super admin만 접근, 전체 지자체 조회·등록·수정.
- “지자체 선택”과 분리: 선택 = 작업 컨텍스트, 지자체 메뉴 = 시스템 설정.
6. 구현 참고
| 구분 | 경로 |
|---|---|
| 필터 | app/Filters/AdminAuthFilter.php — Super admin이고 admin_selected_lg_idx 미설정 시 admin/select-local-government이 아니면 선택 페이지로 리다이렉트 |
| 헬퍼 | app/Helpers/admin_helper.php — admin_effective_lg_idx() |
| 지자체 선택 | app/Controllers/Admin/SelectLocalGovernment.php, app/Views/admin/select_local_government/index.php |
| 라우트 | GET/POST admin/select-local-government |
- 문서:
docs/기본 개발계획/테이블/03-지자체_데이터_필터_및_권한.md와 연계.