Files
sam-manage/docs/[MNG-2025-11-26] role-department-permission-tenant-grouping.md
hskwon f029d78614 역할/부서 권한 관리 페이지 테넌트별 그룹핑 기능 추가
- 전체 테넌트 선택 시 역할/부서를 테넌트별로 그룹화하여 표시
- 테넌트별 섹션 헤더 추가 (회색 라벨)
- 선택 시 [테넌트명] 역할/부서명 형식으로 표시
- 단일 테넌트 선택 시 기존 UI 유지
2025-11-26 15:58:54 +09:00

1.7 KiB

역할/부서 권한 관리 - 테넌트별 그룹핑

변경 일자

2025-11-26

변경 목적

  • "전체" 테넌트 선택 시 역할/부서가 혼합되어 표시되는 문제 해결
  • 테넌트별로 그룹핑하여 가독성 향상

변경 파일

1. Controllers

파일 변경 내용
app/Http/Controllers/RolePermissionController.php 테넌트별 역할 그룹핑 로직 추가
app/Http/Controllers/DepartmentPermissionController.php 테넌트별 부서 그룹핑 로직 추가

주요 로직:

if ($tenantId && $tenantId !== 'all') {
    // 특정 테넌트 선택 시 기존 방식
    $roles = $rolesQuery->where('tenant_id', $tenantId)->get();
    $rolesByTenant = null;
} else {
    // 전체 선택 시 테넌트별 그룹핑
    $roles = $rolesQuery->get();
    $rolesByTenant = $roles->groupBy('tenant_id');
    $tenantIds = $rolesByTenant->keys()->filter()->toArray();
    $tenants = Tenant::whereIn('id', $tenantIds)->pluck('company_name', 'id');
}

2. Views

파일 변경 내용
resources/views/role-permissions/index.blade.php 테넌트별 섹션 헤더 및 그룹핑 UI
resources/views/department-permissions/index.blade.php 테넌트별 섹션 헤더 및 그룹핑 UI

UI 변경:

  • 전체 테넌트 선택 시: 테넌트별 섹션으로 구분 (회색 라벨)
  • 선택된 역할/부서 표시: [테넌트명] 역할명 역할 형식
  • 기존 단일 테넌트 선택 시: 기존 UI 유지

테스트 결과

  • PHP 문법 검사: 통과
  • Laravel Pint: 통과
  • 브라우저 테스트: 테넌트별 그룹핑 정상 동작

관련 이슈

  • tenants 테이블 컬럼명: company_name (name 아님)