Files
sam-manage/app/Http/Middleware/SetTenantContext.php
권혁성 8da1702e47 fix: [tenant-console] 테넌트 콘솔 분리작업
- 라우트 파라미터 충돌 수정 (Layer 4 확장)
- TenantScope 글로벌 스코프가 테넌트 콘솔에서 올바른 tenant_id 사용하도록 수정
- 감사로그 상세 테넌트 콘솔 레이아웃 적용
- 테넌트 전환: 모달 → 컨텍스트 메뉴로 이동, 스타일 변경 (녹색+전환아이콘)
- 테넌트 전환 이벤트를 openTenantConsole 호출로 통일
- 사이드바 스타일 메인과 통일 + 리포트 주의사항 정리
2026-03-13 10:18:23 +09:00

43 lines
1.2 KiB
PHP

<?php
namespace App\Http\Middleware;
use App\Models\Tenants\Tenant;
use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
class SetTenantContext
{
/**
* 테넌트 콘솔 새창에서 URL의 tenantId를 컨텍스트로 설정
* 메인 창의 세션에는 영향을 주지 않음
*/
public function handle(Request $request, Closure $next): Response
{
$tenantId = $request->route('tenantId');
if (! $tenantId) {
abort(404, '테넌트 ID가 필요합니다.');
}
$tenant = Tenant::find($tenantId);
if (! $tenant) {
abort(404, '테넌트를 찾을 수 없습니다.');
}
// 요청 범위에서만 테넌트 컨텍스트 설정 (세션 변경 없음)
$request->attributes->set('tenant_console_id', $tenantId);
$request->attributes->set('tenant_console', $tenant);
$request->attributes->set('tenant_id', (int) $tenantId);
// 뷰에서 사용할 수 있도록 공유
view()->share('consoleTenant', $tenant);
view()->share('consoleTenantId', $tenantId);
view()->share('isTenantConsole', true);
return $next($request);
}
}