fix: [tenant-console] 테넌트 콘솔 분리작업

- 라우트 파라미터 충돌 수정 (Layer 4 확장)
- TenantScope 글로벌 스코프가 테넌트 콘솔에서 올바른 tenant_id 사용하도록 수정
- 감사로그 상세 테넌트 콘솔 레이아웃 적용
- 테넌트 전환: 모달 → 컨텍스트 메뉴로 이동, 스타일 변경 (녹색+전환아이콘)
- 테넌트 전환 이벤트를 openTenantConsole 호출로 통일
- 사이드바 스타일 메인과 통일 + 리포트 주의사항 정리
This commit is contained in:
2026-03-12 18:58:34 +09:00
parent a077bd5710
commit 8da1702e47
71 changed files with 1179 additions and 429 deletions

View File

@@ -2,6 +2,7 @@
namespace App\Http\Controllers;
use App\Helpers\TenantHelper;
use App\Models\Products\CommonCode;
use App\Models\Tenants\Tenant;
use App\Models\Tenants\TenantSetting;
@@ -21,10 +22,10 @@ public function index(Request $request): View|Response
{
// HTMX 요청 시 전체 페이지 리로드
if ($request->header('HX-Request')) {
return response('', 200)->header('HX-Redirect', route('common-codes.index'));
return response('', 200)->header('HX-Redirect', TenantHelper::route('common-codes.index'));
}
$tenantId = session('selected_tenant_id');
$tenantId = TenantHelper::getEffectiveTenantId();
$tenant = $tenantId ? Tenant::find($tenantId) : null;
$isHQ = $tenant?->tenant_type === 'HQ';
@@ -132,7 +133,7 @@ public function index(Request $request): View|Response
*/
private function getCustomGroupLabels(): array
{
$tenantId = session('selected_tenant_id');
$tenantId = TenantHelper::getEffectiveTenantId();
if (! $tenantId) {
return [];
}
@@ -151,7 +152,7 @@ private function getCustomGroupLabels(): array
*/
public function storeGroup(Request $request): RedirectResponse
{
$tenantId = session('selected_tenant_id');
$tenantId = TenantHelper::getEffectiveTenantId();
if (! $tenantId) {
return redirect()->back()->with('error', '테넌트를 먼저 선택해주세요.');
}
@@ -197,7 +198,7 @@ public function storeGroup(Request $request): RedirectResponse
);
return redirect()
->route('common-codes.index', ['group' => $groupCode])
->to(TenantHelper::route('common-codes.index', ['group' => $groupCode]))
->with('success', "'{$groupLabel}' 그룹이 추가되었습니다.");
}
@@ -206,7 +207,7 @@ public function storeGroup(Request $request): RedirectResponse
*/
public function store(Request $request): RedirectResponse
{
$tenantId = session('selected_tenant_id');
$tenantId = TenantHelper::getEffectiveTenantId();
$tenant = $tenantId ? Tenant::find($tenantId) : null;
if (! $tenantId) {
@@ -255,7 +256,7 @@ public function store(Request $request): RedirectResponse
]);
return redirect()
->route('common-codes.index', ['group' => $validated['code_group']])
->to(TenantHelper::route('common-codes.index', ['group' => $validated['code_group']]))
->with('success', '코드가 추가되었습니다.');
}
@@ -264,7 +265,8 @@ public function store(Request $request): RedirectResponse
*/
public function update(Request $request, int $id): RedirectResponse|JsonResponse
{
$tenantId = session('selected_tenant_id');
$id = (int) (request()->route('id') ?? $id);
$tenantId = TenantHelper::getEffectiveTenantId();
$tenant = $tenantId ? Tenant::find($tenantId) : null;
if (! $tenantId) {
@@ -337,7 +339,7 @@ public function update(Request $request, int $id): RedirectResponse|JsonResponse
}
return redirect()
->route('common-codes.index', ['group' => $code->code_group])
->to(TenantHelper::route('common-codes.index', ['group' => $code->code_group]))
->with('success', '코드가 수정되었습니다.');
}
@@ -346,7 +348,8 @@ public function update(Request $request, int $id): RedirectResponse|JsonResponse
*/
public function toggle(Request $request, int $id): JsonResponse
{
$tenantId = session('selected_tenant_id');
$id = (int) (request()->route('id') ?? $id);
$tenantId = TenantHelper::getEffectiveTenantId();
$tenant = $tenantId ? Tenant::find($tenantId) : null;
if (! $tenantId) {
@@ -388,7 +391,7 @@ public function toggle(Request $request, int $id): JsonResponse
*/
public function bulkPromoteToGlobal(Request $request): RedirectResponse|JsonResponse
{
$tenant = session('selected_tenant_id') ? Tenant::find(session('selected_tenant_id')) : null;
$tenant = TenantHelper::getEffectiveTenantId() ? Tenant::find(TenantHelper::getEffectiveTenantId()) : null;
$isHQ = $tenant?->tenant_type === 'HQ';
$isSuperAdmin = auth()->user()?->isSuperAdmin() ?? false;
@@ -462,7 +465,7 @@ public function bulkPromoteToGlobal(Request $request): RedirectResponse|JsonResp
}
return redirect()
->route('common-codes.index', ['group' => $codeGroup ?? 'item_type'])
->to(TenantHelper::route('common-codes.index', ['group' => $codeGroup ?? 'item_type']))
->with('success', $message);
}
@@ -471,7 +474,8 @@ public function bulkPromoteToGlobal(Request $request): RedirectResponse|JsonResp
*/
public function copy(Request $request, int $id): RedirectResponse|JsonResponse
{
$tenantId = session('selected_tenant_id');
$id = (int) (request()->route('id') ?? $id);
$tenantId = TenantHelper::getEffectiveTenantId();
if (! $tenantId) {
if ($request->ajax()) {
@@ -521,7 +525,7 @@ public function copy(Request $request, int $id): RedirectResponse|JsonResponse
}
return redirect()
->route('common-codes.index', ['group' => $globalCode->code_group])
->to(TenantHelper::route('common-codes.index', ['group' => $globalCode->code_group]))
->with('success', '글로벌 코드가 테넌트용으로 복사되었습니다.');
}
@@ -530,7 +534,7 @@ public function copy(Request $request, int $id): RedirectResponse|JsonResponse
*/
public function bulkCopy(Request $request): RedirectResponse|JsonResponse
{
$tenantId = session('selected_tenant_id');
$tenantId = TenantHelper::getEffectiveTenantId();
if (! $tenantId) {
if ($request->ajax()) {
@@ -619,7 +623,7 @@ public function bulkCopy(Request $request): RedirectResponse|JsonResponse
}
return redirect()
->route('common-codes.index', ['group' => $codeGroup ?? 'item_type'])
->to(TenantHelper::route('common-codes.index', ['group' => $codeGroup ?? 'item_type']))
->with('success', $message);
}
@@ -628,7 +632,8 @@ public function bulkCopy(Request $request): RedirectResponse|JsonResponse
*/
public function promoteToGlobal(Request $request, int $id): RedirectResponse|JsonResponse
{
$tenantId = session('selected_tenant_id');
$id = (int) (request()->route('id') ?? $id);
$tenantId = TenantHelper::getEffectiveTenantId();
$tenant = $tenantId ? Tenant::find($tenantId) : null;
$isHQ = $tenant?->tenant_type === 'HQ';
$isSuperAdmin = auth()->user()?->isSuperAdmin() ?? false;
@@ -680,7 +685,7 @@ public function promoteToGlobal(Request $request, int $id): RedirectResponse|Jso
}
return redirect()
->route('common-codes.index', ['group' => $tenantCode->code_group])
->to(TenantHelper::route('common-codes.index', ['group' => $tenantCode->code_group]))
->with('success', '테넌트 코드가 글로벌로 복사되었습니다.');
}
@@ -689,7 +694,8 @@ public function promoteToGlobal(Request $request, int $id): RedirectResponse|Jso
*/
public function destroy(Request $request, int $id): RedirectResponse|JsonResponse
{
$tenantId = session('selected_tenant_id');
$id = (int) (request()->route('id') ?? $id);
$tenantId = TenantHelper::getEffectiveTenantId();
$tenant = $tenantId ? Tenant::find($tenantId) : null;
if (! $tenantId) {
@@ -742,7 +748,7 @@ public function destroy(Request $request, int $id): RedirectResponse|JsonRespons
}
return redirect()
->route('common-codes.index', ['group' => $codeGroup])
->to(TenantHelper::route('common-codes.index', ['group' => $codeGroup]))
->with('success', '코드가 삭제되었습니다.');
}
}