orderBy('name')->get() : collect(); $departments = $tenantId ? Department::where('tenant_id', $tenantId)->where('is_active', true)->orderBy('name')->get() : collect(); return view('users.create', compact('roles', 'departments')); } /** * 사용자 수정 페이지 */ public function edit(int $id): View { $user = $this->userService->getUserById($id); if (! $user) { abort(404, '사용자를 찾을 수 없습니다.'); } // 슈퍼관리자 보호: 일반관리자가 슈퍼관리자를 수정하려는 경우 차단 if ($user->is_super_admin && ! auth()->user()?->is_super_admin) { abort(403, '슈퍼관리자는 수정할 수 없습니다.'); } $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')); } }