From ff5ad1e2bdcb40e33592ea008e91316089e1c4be Mon Sep 17 00:00:00 2001 From: IceToast Date: Tue, 16 Aug 2022 22:33:59 +0200 Subject: [PATCH] =?UTF-8?q?feat:=20=E2=9C=A8=20Added=20validation=20on=20e?= =?UTF-8?q?nable=20upgrade=20system=20&=20disabled=20upgrade=20route=20if?= =?UTF-8?q?=20not=20enabled?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Classes/Settings/System.php | 8 ++++++++ app/Http/Controllers/ServerController.php | 2 +- resources/views/admin/settings/tabs/system.blade.php | 5 +++++ routes/web.php | 4 +++- 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/app/Classes/Settings/System.php b/app/Classes/Settings/System.php index db7eb4e0..22fed19e 100644 --- a/app/Classes/Settings/System.php +++ b/app/Classes/Settings/System.php @@ -46,6 +46,14 @@ public function checkPteroClientkey(){ "enable-upgrades" => "string", ]); + + $validator->after(function ($validator) use ($request) { + // if enable-recaptcha is true then recaptcha-site-key and recaptcha-secret-key must be set + if ($request->get('enable-upgrades') == 'true' && (!$request->get('pterodactyl-admin-api-key'))) { + $validator->errors()->add('pterodactyl-admin-api-key', 'The admin api key is required when upgrades are enabled.'); + } + }); + if ($validator->fails()) { return redirect(route('admin.settings.index') . '#system')->with('error', __('System settings have not been updated!'))->withErrors($validator) ->withInput(); diff --git a/app/Http/Controllers/ServerController.php b/app/Http/Controllers/ServerController.php index 110c83b7..03c06313 100644 --- a/app/Http/Controllers/ServerController.php +++ b/app/Http/Controllers/ServerController.php @@ -257,7 +257,7 @@ class ServerController extends Controller public function upgrade(Server $server, Request $request) { - if($server->user_id != Auth::user()->id || !config("SETTINGS::SYSTEM:ENABLE_UPGRADE")) return redirect()->route('servers.index'); + if($server->user_id != Auth::user()->id) return redirect()->route('servers.index'); if(!isset($request->product_upgrade)) { return redirect()->route('servers.show', ['server' => $server->id])->with('error', __('this product is the only one')); diff --git a/resources/views/admin/settings/tabs/system.blade.php b/resources/views/admin/settings/tabs/system.blade.php index fb432645..9511bd7d 100644 --- a/resources/views/admin/settings/tabs/system.blade.php +++ b/resources/views/admin/settings/tabs/system.blade.php @@ -91,6 +91,11 @@ + @error('pterodactyl-admin-api-key') +
+ {{$message}} +
+ @enderror diff --git a/routes/web.php b/routes/web.php index 73634f52..433220f9 100644 --- a/routes/web.php +++ b/routes/web.php @@ -64,7 +64,9 @@ Route::middleware(['auth', 'checkSuspended'])->group(function () { Route::get('notifications/readAll',[NotificationController::class,'readAll'])->name('notifications.readAll'); Route::resource('notifications', NotificationController::class); Route::resource('servers', ServerController::class); - Route::post('servers/{server}/upgrade', [ServerController::class,'upgrade'])->name('servers.upgrade'); + if(config('SETTINGS::SYSTEM:ENABLE_UPGRADE')){ + Route::post('servers/{server}/upgrade', [ServerController::class,'upgrade'])->name('servers.upgrade'); + } Route::resource('profile', ProfileController::class); Route::resource('store', StoreController::class);