fix(core): 시스템 정보 조회가 일부 호스팅에서 전체 실패하던 문제 수정
disable_functions/open_basedir 제약 호스팅에서 CPU·메모리·디스크 등 개별 probe 실패가 system-info API 전체를 500 으로 떨구던 결함 수정. buildSystemInfo 각 항목을 safeSystemProbe 로 격리해 실패 항목만 unknown 폴백으로 채우고 나머지는 정상 반환. 개별 실패는 Log::warning, 전체 실패는 컨트롤러 Log::error 로 기록. ( 대시보드 격리가 settings 에 미적용되어 재발한 공개 대응) 동반: SettingsController::restore 를 RestoreSettingsRequest 로 이전 (base Request + 컨트롤러 내 검증 제거), 미정의였던 backup_path_required· restore_* lang 키 정의(ko/en/ja).
This commit is contained in:
1 parent
802e99bbcc
commit
ce8055e65c
11 files changed
+401
-35
No files matched your search
@@ -4,6 +4,7 @@ namespace App\Http\Controllers\Api\Admin;
|
||||
|
||||
use App\Http\Controllers\Api\Base\AdminBaseController;
|
||||
use App\Http\Requests\Settings\RegenerateAppKeyRequest;
|
||||
use App\Http\Requests\Settings\RestoreSettingsRequest;
|
||||
use App\Http\Requests\Settings\SaveSettingsRequest;
|
||||
use App\Http\Requests\Settings\TestDriverConnectionRequest;
|
||||
use App\Http\Requests\Settings\TestMailRequest;
|
||||
@@ -13,7 +14,7 @@ use App\Services\DriverConnectionTester;
|
||||
use App\Services\DriverRegistryService;
|
||||
use App\Services\SettingsService;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use Illuminate\Validation\ValidationException;
|
||||
|
||||
/**
|
||||
@@ -137,7 +138,9 @@ class SettingsController extends AdminBaseController
|
||||
$systemInfo = $this->settingsService->getSystemInfo();
|
||||
|
||||
return $this->success('common.success', $systemInfo);
|
||||
} catch (\Exception $e) {
|
||||
} catch (\Throwable $e) {
|
||||
Log::error('시스템 정보 조회 실패', ['error' => $e->getMessage()]);
|
||||
|
||||
return $this->error('common.error_occurred', 500, $e->getMessage());
|
||||
}
|
||||
}
|
||||
@@ -264,16 +267,13 @@ class SettingsController extends AdminBaseController
|
||||
/**
|
||||
* 백업에서 설정을 복원합니다.
|
||||
*
|
||||
* @param RestoreSettingsRequest $request 복원 요청 데이터 (백업 경로)
|
||||
* @return JsonResponse 복원 결과 JSON 응답
|
||||
*/
|
||||
public function restore(Request $request): JsonResponse
|
||||
public function restore(RestoreSettingsRequest $request): JsonResponse
|
||||
{
|
||||
try {
|
||||
$backupPath = $request->input('backup_path');
|
||||
|
||||
if (empty($backupPath)) {
|
||||
return $this->error('settings.backup_path_required', 422);
|
||||
}
|
||||
$backupPath = $request->validated('backup_path');
|
||||
|
||||
$result = $this->settingsService->restoreSettings($backupPath);
|
||||
|
||||
|
||||
Reference in new issue
Block a user