- 기초관리: 목록(13컬럼) + 폼(기본정보 + 케이스전용 + 절곡테이블 + 이미지) - 절곡품: 가이드레일/케이스/하단마감재 타입별 목록 + 폼 - 부품 추가(기초관리 검색 모달) + 삭제 + 수량/품명/재질 편집 - 절곡테이블 inline 편집 + 재질별 폭합 자동계산 - 작업지시서 레거시 포맷 인쇄 모달 - 원본수정 버튼 sam_item_id 직접 링크 - DB 메뉴 등록 (기초관리 + 절곡품 + 케이스 + 하단마감재)
45 lines
1.4 KiB
PHP
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);
|
|
}
|
|
}
|