Files
sam-manage/app/Http/Controllers/TenantController.php
김보곤 945305b54b feat: [tenant] 테넌트 편집에 인쇄용 회사 표시명 필드 추가
- 테넌트 편집 페이지에 '인쇄용 회사명' 입력 필드 추가
- 저장 시 tenant_settings 테이블에 display_company_name 저장
- 재직증명서 등 문서에서 표시명 우선 적용
2026-03-05 20:20:29 +09:00

78 lines
2.0 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\Tenants\TenantSetting;
use App\Services\TenantService;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\View\View;
class TenantController extends Controller
{
public function __construct(
private readonly TenantService $tenantService
) {}
/**
* 테넌트 목록 (Blade 화면)
*/
public function index(Request $request): View|Response
{
// HTMX 요청 시 전체 페이지 리로드 (스크립트 실행 필요)
if ($request->header('HX-Request')) {
return response('', 200)->header('HX-Redirect', route('tenants.index'));
}
return view('tenants.index');
}
/**
* 테넌트 생성 화면
*/
public function create(): View
{
return view('tenants.create');
}
/**
* 테넌트 수정 화면
*/
public function edit(int $id): View
{
$tenant = $this->tenantService->getTenantById($id);
if (! $tenant) {
abort(404, '테넌트를 찾을 수 없습니다.');
}
$displayCompanyName = TenantSetting::withoutGlobalScopes()
->where('tenant_id', $id)
->where('setting_group', 'company')
->where('setting_key', 'display_company_name')
->first()?->setting_value ?? '';
return view('tenants.edit', compact('tenant', 'displayCompanyName'));
}
/**
* 테넌트 전환 (기존 기능 유지)
*/
public function switch(Request $request)
{
$tenantId = $request->input('tenant_id');
if ($tenantId === 'all') {
// "전체 보기" 대신 사용자의 HQ 테넌트로 설정
$hqTenant = auth()->user()->getHQTenant();
if ($hqTenant) {
$request->session()->put('selected_tenant_id', $hqTenant->id);
}
} else {
$request->session()->put('selected_tenant_id', $tenantId);
}
return redirect()->back();
}
}