역할/부서 권한 관리 페이지 테넌트별 그룹핑 기능 추가

- 전체 테넌트 선택 시 역할/부서를 테넌트별로 그룹화하여 표시
- 테넌트별 섹션 헤더 추가 (회색 라벨)
- 선택 시 [테넌트명] 역할/부서명 형식으로 표시
- 단일 테넌트 선택 시 기존 UI 유지
This commit is contained in:
2025-11-26 15:58:54 +09:00
parent 69b04ae041
commit f029d78614
5 changed files with 192 additions and 44 deletions

View File

@@ -0,0 +1,50 @@
# 역할/부서 권한 관리 - 테넌트별 그룹핑
## 변경 일자
2025-11-26
## 변경 목적
- "전체" 테넌트 선택 시 역할/부서가 혼합되어 표시되는 문제 해결
- 테넌트별로 그룹핑하여 가독성 향상
## 변경 파일
### 1. Controllers
| 파일 | 변경 내용 |
|------|----------|
| `app/Http/Controllers/RolePermissionController.php` | 테넌트별 역할 그룹핑 로직 추가 |
| `app/Http/Controllers/DepartmentPermissionController.php` | 테넌트별 부서 그룹핑 로직 추가 |
**주요 로직:**
```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 아님)