feat: [tenant] 컨텍스트 메뉴 테넌트 설정 + 콘솔 사이드바 DB 메뉴 적용

- 컨텍스트 메뉴 "이 테넌트로 전환" → "테넌트 설정" (보라색, 설정 아이콘)
- context-menu.js에서 직접 window.open 처리 (openTenantConsole 의존 제거)
- 테넌트 콘솔 사이드바 하드코딩 → DB 기반 메뉴 시스템 전환
- SidebarMenuService에 getTenantMenusBySection() 추가
- AppServiceProvider에 tenant-console-sidebar View Composer 추가
This commit is contained in:
2026-03-13 21:18:54 +09:00
parent 50dff3b661
commit cb254cf138
5 changed files with 165 additions and 87 deletions

View File

@@ -131,6 +131,35 @@ public function getMenusBySection(?User $user = null): array
];
}
/**
* 특정 테넌트의 전체 메뉴 트리 조회 (권한 필터 없음, 관리 콘솔용)
*/
public function getTenantMenuTree(int $tenantId): Collection
{
$allMenus = Menu::withoutGlobalScopes()
->where('tenant_id', $tenantId)
->where('is_active', true)
->where('hidden', false)
->orderBy('sort_order')
->get();
return $this->buildMenuTree($allMenus);
}
/**
* 특정 테넌트의 섹션별 메뉴 조회 (관리 콘솔용)
*/
public function getTenantMenusBySection(int $tenantId): array
{
$menuTree = $this->getTenantMenuTree($tenantId);
return [
'main' => $menuTree->filter(fn ($m) => $m->getSection() === 'main')->values(),
'tools' => $menuTree->filter(fn ($m) => $m->getSection() === 'tools')->values(),
'labs' => $menuTree->filter(fn ($m) => $m->getSection() === 'labs')->values(),
];
}
/**
* 메뉴 트리 구성
*/