- 라우트 파라미터 충돌 수정 (Layer 4 확장) - TenantScope 글로벌 스코프가 테넌트 콘솔에서 올바른 tenant_id 사용하도록 수정 - 감사로그 상세 테넌트 콘솔 레이아웃 적용 - 테넌트 전환: 모달 → 컨텍스트 메뉴로 이동, 스타일 변경 (녹색+전환아이콘) - 테넌트 전환 이벤트를 openTenantConsole 호출로 통일 - 사이드바 스타일 메인과 통일 + 리포트 주의사항 정리
43 lines
1.2 KiB
PHP
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);
|
|
}
|
|
}
|