역할/부서 권한 관리 페이지 테넌트별 그룹핑 기능 추가
- 전체 테넌트 선택 시 역할/부서를 테넌트별로 그룹화하여 표시 - 테넌트별 섹션 헤더 추가 (회색 라벨) - 선택 시 [테넌트명] 역할/부서명 형식으로 표시 - 단일 테넌트 선택 시 기존 UI 유지
This commit is contained in:
@@ -2,6 +2,8 @@
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\Role;
|
||||
use App\Models\Tenants\Tenant;
|
||||
use App\Services\RolePermissionService;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
@@ -22,14 +24,27 @@ public function index(Request $request)
|
||||
$tenantId = session('selected_tenant_id');
|
||||
|
||||
// 역할 목록 조회
|
||||
$roles = \App\Models\Role::query();
|
||||
$rolesQuery = Role::query()->orderBy('tenant_id')->orderBy('name');
|
||||
|
||||
if ($tenantId && $tenantId !== 'all') {
|
||||
$roles->where('tenant_id', $tenantId);
|
||||
// 특정 테넌트 선택 시
|
||||
$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');
|
||||
}
|
||||
$roles = $roles->orderBy('name')->get();
|
||||
|
||||
return view('role-permissions.index', [
|
||||
'roles' => $roles,
|
||||
'rolesByTenant' => $rolesByTenant ?? null,
|
||||
'tenants' => $tenants ?? collect(),
|
||||
'selectedTenantId' => $tenantId,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user