Browse Source

feat: ✨ Added Enable Upgrade setting

IceToast 2 years ago
parent
commit
5bf5abfda7

+ 2 - 0
app/Classes/Settings/System.php

@@ -43,6 +43,7 @@ public function checkPteroClientkey(){
             "pterodactyl-api-key" => "required|string",
             "pterodactyl-api-key" => "required|string",
             "pterodactyl-url" => "required|string",
             "pterodactyl-url" => "required|string",
             "pterodactyl-admin-api-key" => "required|string",
             "pterodactyl-admin-api-key" => "required|string",
+            "enable-upgrades" => "string",
 
 
         ]);
         ]);
         if ($validator->fails()) {
         if ($validator->fails()) {
@@ -73,6 +74,7 @@ public function checkPteroClientkey(){
             "SETTINGS::SYSTEM:PTERODACTYL:TOKEN" => "pterodactyl-api-key",
             "SETTINGS::SYSTEM:PTERODACTYL:TOKEN" => "pterodactyl-api-key",
             "SETTINGS::SYSTEM:ENABLE_LOGIN_LOGO" => "enable-login-logo",
             "SETTINGS::SYSTEM:ENABLE_LOGIN_LOGO" => "enable-login-logo",
             "SETTINGS::SYSTEM:PTERODACTYL:ADMIN_USER_TOKEN" => "pterodactyl-admin-api-key",
             "SETTINGS::SYSTEM:PTERODACTYL:ADMIN_USER_TOKEN" => "pterodactyl-admin-api-key",
+            "SETTINGS::SYSTEM:ENABLE_UPGRADE" => "enable-upgrade",
         ];
         ];
 
 
 
 

+ 2 - 2
app/Http/Controllers/ServerController.php

@@ -257,7 +257,7 @@ class ServerController extends Controller
 
 
     public function upgrade(Server $server, Request $request)
     public function upgrade(Server $server, Request $request)
     {
     {
-        if($server->user_id != Auth::user()->id) return redirect()->route('servers.index');
+        if($server->user_id != Auth::user()->id || !config("SETTINGS::SYSTEM:ENABLE_UPGRADE")) return redirect()->route('servers.index');
         if(!isset($request->product_upgrade))
         if(!isset($request->product_upgrade))
         {
         {
             return redirect()->route('servers.show', ['server' => $server->id])->with('error', __('this product is the only one'));
             return redirect()->route('servers.show', ['server' => $server->id])->with('error', __('this product is the only one'));
@@ -268,7 +268,7 @@ class ServerController extends Controller
         $serverAttributes = Pterodactyl::getServerAttributes($server->pterodactyl_id);
         $serverAttributes = Pterodactyl::getServerAttributes($server->pterodactyl_id);
         $serverRelationships = $serverAttributes['relationships'];
         $serverRelationships = $serverAttributes['relationships'];
 
 
-        // Get node resource allocation info 
+        // Get node resource allocation info
         $nodeId = $serverRelationships['node']['attributes']['id'];
         $nodeId = $serverRelationships['node']['attributes']['id'];
         $node = Node::where('id', $nodeId)->firstOrFail();
         $node = Node::where('id', $nodeId)->firstOrFail();
         $nodeName = $node->name;
         $nodeName = $node->name;

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

@@ -178,6 +178,21 @@
                         <h1>{{ __('Server') }}</h1>
                         <h1>{{ __('Server') }}</h1>
                     </div>
                     </div>
                 </div>
                 </div>
+                <div class="form-group">
+                    <div class="custom-control mb-1 p-0">
+                        <div class="col m-0 p-0 d-flex justify-content-between align-items-center">
+                            <div>
+                                <input value="true" id="enable-upgrade" name="enable-upgrade"
+                                    {{ config('SETTINGS::SYSTEM:ENABLE_UPGRADE') == 'true' ? 'checked' : '' }}
+                                    type="checkbox">
+                                <label for="enable-upgrade">{{ __('Enable upgrade/downgrade of servers') }} </label>
+                            </div>
+                            <i data-toggle="popover" data-trigger="hover" data-html="true"
+                                data-content="{{ __('Allow upgrade/downgrade to a new product for the given server') }}"
+                                class="fas fa-info-circle"></i>
+                        </div>
+                    </div>
+                </div>
                 <div class="form-group">
                 <div class="form-group">
                     <div class="custom-control mb-3 p-0">
                     <div class="custom-control mb-3 p-0">
                         <div class="col m-0 p-0 d-flex justify-content-between align-items-center">
                         <div class="col m-0 p-0 d-flex justify-content-between align-items-center">
@@ -191,6 +206,8 @@
                             class="form-control @error('allocation-limit') is-invalid @enderror" required>
                             class="form-control @error('allocation-limit') is-invalid @enderror" required>
                     </div>
                     </div>
                 </div>
                 </div>
+
+
             </div>
             </div>
 
 
                 {{-- Design --}}
                 {{-- Design --}}

+ 1 - 6
resources/views/servers/settings.blade.php

@@ -221,12 +221,7 @@
                 <div class="card-footer">
                 <div class="card-footer">
                     <div class="col-md-12 text-center">
                     <div class="col-md-12 text-center">
                         <!-- Upgrade Button trigger modal -->
                         <!-- Upgrade Button trigger modal -->
-                        @if(!config("SETTINGS::SYSTEM:PTERODACTYL:ADMIN_USER_TOKEN") and Auth::user()->role=="admin")
-                            <i data-toggle="popover" data-trigger="hover"
-                               data-content="{{ __('To enable the upgrade/downgrade system, please set your Ptero Admin-User API Key in the Settings!') }}"
-                               class="fas fa-info-circle"></i>
-                        @endif
-                        @if(config("SETTINGS::SYSTEM:PTERODACTYL:ADMIN_USER_TOKEN") || Auth::user()->role=="admin")
+                        @if(config("SETTINGS::SYSTEM:ENABLE_UPGRADE"))
                             <button type="button" data-toggle="modal" data-target="#UpgradeModal{{ $server->id }}" target="__blank"
                             <button type="button" data-toggle="modal" data-target="#UpgradeModal{{ $server->id }}" target="__blank"
                                 class="btn btn-info btn-md">
                                 class="btn btn-info btn-md">
                                 <i class="fas fa-upload mr-2"></i>
                                 <i class="fas fa-upload mr-2"></i>