Browse Source

feat: ✨ Added validation on enable upgrade system & disabled upgrade route if not enabled

IceToast 2 years ago
parent
commit
ff5ad1e2bd

+ 8 - 0
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();

+ 1 - 1
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'));

+ 5 - 0
resources/views/admin/settings/tabs/system.blade.php

@@ -91,6 +91,11 @@
                         <input x-model="pterodactyl-admin-api-key" id="pterodactyl-admin-api-key" name="pterodactyl-admin-api-key"
                                type="text" value="{{ config('SETTINGS::SYSTEM:PTERODACTYL:ADMIN_USER_TOKEN') }}"
                                class="form-control @error('pterodactyl-admin-api-key') is-invalid @enderror" required>
+                        @error('pterodactyl-admin-api-key')
+                                <div class="text-danger">
+                                    {{$message}}
+                                </div>
+                        @enderror
                     </div>
                     <a href="{{route('admin.settings.checkPteroClientkey')}}"> <button type="button" class="btn btn-secondary">{{__("Test API")}}</button></a>
                 </div>

+ 3 - 1
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);