- 전체 테넌트 선택 시 역할/부서를 테넌트별로 그룹화하여 표시 - 테넌트별 섹션 헤더 추가 (회색 라벨) - 선택 시 [테넌트명] 역할/부서명 형식으로 표시 - 단일 테넌트 선택 시 기존 UI 유지
51 lines
1.7 KiB
PHP
51 lines
1.7 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\Tenants\Department;
|
|
use App\Models\Tenants\Tenant;
|
|
use App\Services\DepartmentPermissionService;
|
|
use Illuminate\Http\Request;
|
|
|
|
class DepartmentPermissionController extends Controller
|
|
{
|
|
protected DepartmentPermissionService $departmentPermissionService;
|
|
|
|
public function __construct(DepartmentPermissionService $departmentPermissionService)
|
|
{
|
|
$this->departmentPermissionService = $departmentPermissionService;
|
|
}
|
|
|
|
/**
|
|
* 부서 권한 관리 메인 페이지
|
|
*/
|
|
public function index(Request $request)
|
|
{
|
|
$tenantId = session('selected_tenant_id');
|
|
|
|
// 부서 목록 조회
|
|
$departmentsQuery = Department::query()->orderBy('tenant_id')->orderBy('sort_order')->orderBy('name');
|
|
|
|
if ($tenantId && $tenantId !== 'all') {
|
|
// 특정 테넌트 선택 시
|
|
$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');
|
|
}
|
|
|
|
return view('department-permissions.index', [
|
|
'departments' => $departments,
|
|
'departmentsByTenant' => $departmentsByTenant ?? null,
|
|
'tenants' => $tenants ?? collect(),
|
|
'selectedTenantId' => $tenantId,
|
|
]);
|
|
}
|
|
}
|