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

- 전체 테넌트 선택 시 역할/부서를 테넌트별로 그룹화하여 표시
- 테넌트별 섹션 헤더 추가 (회색 라벨)
- 선택 시 [테넌트명] 역할/부서명 형식으로 표시
- 단일 테넌트 선택 시 기존 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

@@ -2,6 +2,8 @@
namespace App\Http\Controllers;
use App\Models\Tenants\Department;
use App\Models\Tenants\Tenant;
use App\Services\DepartmentPermissionService;
use Illuminate\Http\Request;
@@ -22,14 +24,27 @@ public function index(Request $request)
$tenantId = session('selected_tenant_id');
// 부서 목록 조회
$departments = \App\Models\Tenants\Department::query();
$departmentsQuery = Department::query()->orderBy('tenant_id')->orderBy('sort_order')->orderBy('name');
if ($tenantId && $tenantId !== 'all') {
$departments->where('tenant_id', $tenantId);
// 특정 테넌트 선택 시
$departments = $departmentsQuery->where('tenant_id', $tenantId)->get();
$departmentsByTenant = null;
} else {
// 전체 선택 시 테넌트별 그룹핑
$departments = $departmentsQuery->get();
$departmentsByTenant = $departments->groupBy('tenant_id');
// 테넌트 정보 로드
$tenantIds = $departmentsByTenant->keys()->filter()->toArray();
$tenants = Tenant::whereIn('id', $tenantIds)->pluck('company_name', 'id');
}
$departments = $departments->orderBy('sort_order')->orderBy('name')->get();
return view('department-permissions.index', [
'departments' => $departments,
'departmentsByTenant' => $departmentsByTenant ?? null,
'tenants' => $tenants ?? collect(),
'selectedTenantId' => $tenantId,
]);
}
}