Files
jongryangje/docs/기본 개발계획/21-super_admin_지자체_선택_흐름.md
2026-04-08 00:23:55 +09:00

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만 접근, 전체 지자체 조회·등록·수정.
    • “지자체 선택”과 분리: 선택 = 작업 컨텍스트, 지자체 메뉴 = 시스템 설정.

6. 구현 참고

구분 경로
필터 app/Filters/AdminAuthFilter.php — Super admin이고 admin_selected_lg_idx 미설정 시 admin/select-local-government이 아니면 선택 페이지로 리다이렉트
헬퍼 app/Helpers/admin_helper.phpadmin_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와 연계.