역할/부서 권한 관리 페이지 테넌트별 그룹핑 기능 추가
- 전체 테넌트 선택 시 역할/부서를 테넌트별로 그룹화하여 표시 - 테넌트별 섹션 헤더 추가 (회색 라벨) - 선택 시 [테넌트명] 역할/부서명 형식으로 표시 - 단일 테넌트 선택 시 기존 UI 유지
This commit is contained in:
@@ -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 아님)
|
||||
Reference in New Issue
Block a user