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

45 lines
1.4 KiB
PHP

<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
class SetTenantFromApiRequest
{
/**
* 테넌트 콘솔에서 API 호출 시 tenant_id 파라미터를 세션에 반영
* (요청 처리 중에만 적용, 요청 종료 후 원래 세션 값 복원)
*/
public function handle(Request $request, Closure $next): Response
{
$requestTenantId = $request->input('tenant_id');
$consoleTenantId = $request->input('tenant_console_id');
// 테넌트 콘솔에서 온 요청이면 세션을 임시로 설정
if ($consoleTenantId && $requestTenantId) {
$originalTenantId = session('selected_tenant_id');
// 요청 범위에서만 세션 덮어쓰기
session(['selected_tenant_id' => (int) $requestTenantId]);
// 요청 속성에도 테넌트 콘솔 컨텍스트 설정
$request->attributes->set('tenant_console_id', $consoleTenantId);
$response = $next($request);
// 원래 세션 값 복원
if ($originalTenantId !== null) {
session(['selected_tenant_id' => $originalTenantId]);
} else {
session()->forget('selected_tenant_id');
}
return $response;
}
return $next($request);
}
}