Files
sam-manage/app/Http/Controllers/UserController.php
hskwon 858ce6194d Flow Tester AI 프롬프트 템플릿 개선
- config.apiKey 필드를 JSON에서 제거 (서버 자동 주입)
- config.baseUrl을 빈 문자열로 설정 (서버 기본값 사용)
- 프롬프트 템플릿에 더 명확한 규칙 추가
- 로그인 스텝 포함한 완전한 예시 제공
- 예시 프롬프트 간소화
2025-12-05 14:19:59 +09:00

76 lines
2.5 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\Department;
use App\Models\Role;
use App\Models\Tenants\Tenant;
use App\Services\UserService;
use Illuminate\Http\Request;
use Illuminate\View\View;
class UserController extends Controller
{
public function __construct(
private readonly UserService $userService
) {}
/**
* 사용자 목록 페이지
*/
public function index(Request $request): View
{
return view('users.index');
}
/**
* 사용자 생성 페이지
*/
public function create(): View
{
$tenantId = session('selected_tenant_id');
// 역할/부서 목록 (테넌트별)
$roles = $tenantId ? Role::where('tenant_id', $tenantId)->orderBy('name')->get() : collect();
$departments = $tenantId ? Department::where('tenant_id', $tenantId)->where('is_active', true)->orderBy('name')->get() : collect();
// 본사 테넌트 여부 확인 (본사: 이메일 인증, 그 외: 비밀번호 직접 입력)
$isHQ = false;
if ($tenantId) {
$tenant = Tenant::find($tenantId);
$isHQ = $tenant?->tenant_type === 'HQ';
}
return view('users.create', compact('roles', 'departments', 'isHQ'));
}
/**
* 사용자 수정 페이지
*/
public function edit(int $id): View
{
// 슈퍼관리자 보호: 일반관리자가 슈퍼관리자에 접근 불가 (존재하지 않는 것처럼)
if (! $this->userService->canAccessUser($id)) {
abort(404, '사용자를 찾을 수 없습니다.');
}
$user = $this->userService->getUserById($id);
if (! $user) {
abort(404, '사용자를 찾을 수 없습니다.');
}
$tenantId = session('selected_tenant_id');
// 역할/부서 목록 (테넌트별)
$roles = $tenantId ? Role::where('tenant_id', $tenantId)->orderBy('name')->get() : collect();
$departments = $tenantId ? Department::where('tenant_id', $tenantId)->where('is_active', true)->orderBy('name')->get() : collect();
// 사용자의 현재 역할/부서 ID 목록
$userRoleIds = $tenantId ? $user->userRoles()->where('tenant_id', $tenantId)->pluck('role_id')->toArray() : [];
$userDepartmentIds = $tenantId ? $user->departmentUsers()->where('tenant_id', $tenantId)->pluck('department_id')->toArray() : [];
return view('users.edit', compact('user', 'roles', 'departments', 'userRoleIds', 'userDepartmentIds'));
}
}