From 569489f175dc648d39bfce6de3da962d48f05831 Mon Sep 17 00:00:00 2001
From: 1day2die
Date: Mon, 15 Aug 2022 12:38:29 +0200
Subject: [PATCH 01/33] Update RouteServiceProvider.php
---
app/Providers/RouteServiceProvider.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php
index 0531b53e..ce98acfb 100644
--- a/app/Providers/RouteServiceProvider.php
+++ b/app/Providers/RouteServiceProvider.php
@@ -61,7 +61,7 @@ class RouteServiceProvider extends ServiceProvider
return Limit::perMinute(60)->by(optional($request->user())->id ?: $request->ip());
});
RateLimiter::for('web', function (Request $request) {
- return Limit::perMinute(15)->by(optional($request->user())->id ?: $request->ip());
+ return Limit::perMinute(60)->by(optional($request->user())->id ?: $request->ip());
});
}
}
From ad6142a986b17cc51dc6cc22b83184e68a6eec66 Mon Sep 17 00:00:00 2001
From: 1day2die
Date: Mon, 15 Aug 2022 12:39:54 +0200
Subject: [PATCH 02/33] Update RouteServiceProvider.php
---
app/Providers/RouteServiceProvider.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php
index ce98acfb..eef3de13 100644
--- a/app/Providers/RouteServiceProvider.php
+++ b/app/Providers/RouteServiceProvider.php
@@ -61,7 +61,7 @@ class RouteServiceProvider extends ServiceProvider
return Limit::perMinute(60)->by(optional($request->user())->id ?: $request->ip());
});
RateLimiter::for('web', function (Request $request) {
- return Limit::perMinute(60)->by(optional($request->user())->id ?: $request->ip());
+ return Limit::perMinute(40)->by(optional($request->user())->id ?: $request->ip());
});
}
}
From e2f27959f5b0c668994cc9e7496ca10b2cd718dd Mon Sep 17 00:00:00 2001
From: Dennis
Date: Mon, 15 Aug 2022 14:27:43 +0200
Subject: [PATCH 03/33] Update README.md
---
README.md | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index 88840fe1..2c6d142c 100644
--- a/README.md
+++ b/README.md
@@ -19,8 +19,9 @@
![controlpanel](https://user-images.githubusercontent.com/45005889/123518824-06b05000-d6a8-11eb-91b9-d1ed36bd2317.png)
-[//]: ![](https://img.shields.io/endpoint?style=flat&url=https%3A%2F%2Fmarket.controlpanel.gg%2Fcallhome.php%3Fgetinstalls)
-![](https://img.shields.io/github/stars/ControlPanel-gg/dashboard) ![](https://img.shields.io/github/forks/ControlPanel-gg/dashboard) ![](https://img.shields.io/github/tag/ControlPanel-gg/dashboard) [![Crowdin](https://badges.crowdin.net/controlpanelgg/localized.svg)](https://crowdin.com/project/controlpanelgg) ![](https://img.shields.io/github/issues/ControlPanel-gg/dashboard) ![](https://img.shields.io/github/license/ControlPanel-gg/dashboard) ![](https://img.shields.io/discord/787829714483019826)
+![](https://img.shields.io/endpoint?style=flat&url=https%3A%2F%2Fmarket.controlpanel.gg%2Fcallhome.php%3Fgetinstalls)
+![](https://img.shields.io/badge/Overall%20Installations-2000%2B-green)
+![](https://img.shields.io/endpoint?label=v0.8%20Installations&url=https%3A%2F%2Fmarket.controlpanel.gg%2Fcallhome.php%3Fgetinstalls)![](https://img.shields.io/github/stars/ControlPanel-gg/dashboard) ![](https://img.shields.io/github/forks/ControlPanel-gg/dashboard) ![](https://img.shields.io/github/tag/ControlPanel-gg/dashboard) [![Crowdin](https://badges.crowdin.net/controlpanelgg/localized.svg)](https://crowdin.com/project/controlpanelgg) ![](https://img.shields.io/github/issues/ControlPanel-gg/dashboard) ![](https://img.shields.io/github/license/ControlPanel-gg/dashboard) ![](https://img.shields.io/discord/787829714483019826)
## About
ControlPanel's Dashboard is a dashboard application designed to offer clients a management tool to manage their pterodactyl servers. This dashboard comes with a credit-based billing solution that credits users hourly for each server they have and suspends them if they run out of credits.
From 60be2721c71137f278d84782dfb8bd43a8627b73 Mon Sep 17 00:00:00 2001
From: Dennis
Date: Mon, 15 Aug 2022 14:28:21 +0200
Subject: [PATCH 04/33] Update README.md
---
README.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index 2c6d142c..009b2a87 100644
--- a/README.md
+++ b/README.md
@@ -19,9 +19,9 @@
![controlpanel](https://user-images.githubusercontent.com/45005889/123518824-06b05000-d6a8-11eb-91b9-d1ed36bd2317.png)
-![](https://img.shields.io/endpoint?style=flat&url=https%3A%2F%2Fmarket.controlpanel.gg%2Fcallhome.php%3Fgetinstalls)
+![](https://img.shields.io/endpoint?label=v0.8%20Installations&url=https%3A%2F%2Fmarket.controlpanel.gg%2Fcallhome.php%3Fgetinstalls)
![](https://img.shields.io/badge/Overall%20Installations-2000%2B-green)
-![](https://img.shields.io/endpoint?label=v0.8%20Installations&url=https%3A%2F%2Fmarket.controlpanel.gg%2Fcallhome.php%3Fgetinstalls)![](https://img.shields.io/github/stars/ControlPanel-gg/dashboard) ![](https://img.shields.io/github/forks/ControlPanel-gg/dashboard) ![](https://img.shields.io/github/tag/ControlPanel-gg/dashboard) [![Crowdin](https://badges.crowdin.net/controlpanelgg/localized.svg)](https://crowdin.com/project/controlpanelgg) ![](https://img.shields.io/github/issues/ControlPanel-gg/dashboard) ![](https://img.shields.io/github/license/ControlPanel-gg/dashboard) ![](https://img.shields.io/discord/787829714483019826)
+![](https://img.shields.io/github/stars/ControlPanel-gg/dashboard) ![](https://img.shields.io/github/forks/ControlPanel-gg/dashboard) ![](https://img.shields.io/github/tag/ControlPanel-gg/dashboard) [![Crowdin](https://badges.crowdin.net/controlpanelgg/localized.svg)](https://crowdin.com/project/controlpanelgg) ![](https://img.shields.io/github/issues/ControlPanel-gg/dashboard) ![](https://img.shields.io/github/license/ControlPanel-gg/dashboard) ![](https://img.shields.io/discord/787829714483019826)
## About
ControlPanel's Dashboard is a dashboard application designed to offer clients a management tool to manage their pterodactyl servers. This dashboard comes with a credit-based billing solution that credits users hourly for each server they have and suspends them if they run out of credits.
From 418de21704a945934a45489ec4a912f1fc1291ad Mon Sep 17 00:00:00 2001
From: Dennis
Date: Mon, 15 Aug 2022 14:35:18 +0200
Subject: [PATCH 05/33] Update README.md
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 009b2a87..fa5c37f2 100644
--- a/README.md
+++ b/README.md
@@ -20,7 +20,7 @@
![](https://img.shields.io/endpoint?label=v0.8%20Installations&url=https%3A%2F%2Fmarket.controlpanel.gg%2Fcallhome.php%3Fgetinstalls)
-![](https://img.shields.io/badge/Overall%20Installations-2000%2B-green)
+![](https://img.shields.io/badge/Overall%20Installations-2500%2B-green)
![](https://img.shields.io/github/stars/ControlPanel-gg/dashboard) ![](https://img.shields.io/github/forks/ControlPanel-gg/dashboard) ![](https://img.shields.io/github/tag/ControlPanel-gg/dashboard) [![Crowdin](https://badges.crowdin.net/controlpanelgg/localized.svg)](https://crowdin.com/project/controlpanelgg) ![](https://img.shields.io/github/issues/ControlPanel-gg/dashboard) ![](https://img.shields.io/github/license/ControlPanel-gg/dashboard) ![](https://img.shields.io/discord/787829714483019826)
## About
From a9373cc18f7b8a7a5ffee59677cc746d8d9b8243 Mon Sep 17 00:00:00 2001
From: IceToast
Date: Mon, 15 Aug 2022 14:49:02 +0200
Subject: [PATCH 06/33] =?UTF-8?q?fix:=20=F0=9F=90=9B=20Fix=20Type=20Error?=
=?UTF-8?q?=20at=20serverUpdate=20return=20phpdoc?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/Classes/Pterodactyl.php | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/app/Classes/Pterodactyl.php b/app/Classes/Pterodactyl.php
index f217bd34..a7bc9bd5 100644
--- a/app/Classes/Pterodactyl.php
+++ b/app/Classes/Pterodactyl.php
@@ -312,7 +312,7 @@ class Pterodactyl
* Update Server Resources
* @param Server $server
* @param Product $product
- * @return boolean
+ * @return Response
*/
public static function updateServer(Server $server, Product $product)
{
@@ -335,7 +335,7 @@ class Pterodactyl
* Power Action Specific Server
* @param Server $server
* @param string $action
- * @return boolean
+ * @return Response
*/
public static function powerAction(Server $server, $action)
{
From 3f47fa5e9fb88f7c4d1410771e49c643d2963108 Mon Sep 17 00:00:00 2001
From: SahrulGnwn
Date: Mon, 15 Aug 2022 20:36:14 +0700
Subject: [PATCH 07/33] Fix Bypass node limit when upgrade
---
app/Http/Controllers/ServerController.php | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/app/Http/Controllers/ServerController.php b/app/Http/Controllers/ServerController.php
index 28242206..f53f4756 100644
--- a/app/Http/Controllers/ServerController.php
+++ b/app/Http/Controllers/ServerController.php
@@ -266,6 +266,19 @@ class ServerController extends Controller
$oldProduct = Product::where('id', $server->product->id)->first();
$newProduct = Product::where('id', $request->product_upgrade)->first();
$serverAttributes = Pterodactyl::getServerAttributes($server->pterodactyl_id);
+ $serverRelationships = $serverAttributes['relationships'];
+
+ // Get node resource allocation info
+ $nodeId = $serverRelationships['node']['attributes']['id'];
+ $node = Node::where('id', $nodeId)->firstOrFail();
+ $nodeName = $node->name;
+
+ // Check if node has enough memory and disk space
+ $requireMemory = $newProduct->memory - $oldProduct->memory;
+ $requiredisk = $newProduct->disk - $oldProduct->disk;
+ $checkResponse = Pterodactyl::checkNodeResources($node, $requireMemory, $requiredisk);
+ if ($checkResponse == False) return redirect()->route('servers.index')->with('error', __("The node '" . $nodeName . "' doesn't have the required memory or disk left to upgrade the server."));
+
$priceupgrade = $newProduct->getHourlyPrice();
if ($priceupgrade < $oldProduct->getHourlyPrice()) {
@@ -283,7 +296,7 @@ class ServerController extends Controller
$user->decrement('credits', $priceupgrade);
//restart the server
$response = Pterodactyl::powerAction($server, "restart");
- if ($response->failed()) return $this->serverCreationFailed($response, $server);
+ if ($response->failed()) return redirect()->route('servers.index')->with('error', $response->json()['errors'][0]['detail']);
return redirect()->route('servers.show', ['server' => $server->id])->with('success', __('Server Successfully Upgraded'));
}
else
From 8bce05a6f51262edb2a3073cdaa6622f373f67f2 Mon Sep 17 00:00:00 2001
From: Dennis
Date: Mon, 15 Aug 2022 15:45:43 +0200
Subject: [PATCH 08/33] Update app.php
---
config/app.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/config/app.php b/config/app.php
index e8ab470b..0d7b8c9f 100644
--- a/config/app.php
+++ b/config/app.php
@@ -4,7 +4,7 @@ use App\Models\Settings;
return [
- 'version' => '0.8',
+ 'version' => '0.8.1',
/*
|--------------------------------------------------------------------------
From a443ae854f7de441bfa4f14d904035f88553a143 Mon Sep 17 00:00:00 2001
From: 1day2die
Date: Mon, 15 Aug 2022 16:14:18 +0200
Subject: [PATCH 09/33] Update ServerController.php
---
app/Http/Controllers/ServerController.php | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/app/Http/Controllers/ServerController.php b/app/Http/Controllers/ServerController.php
index f53f4756..8dabf0a0 100644
--- a/app/Http/Controllers/ServerController.php
+++ b/app/Http/Controllers/ServerController.php
@@ -268,7 +268,7 @@ class ServerController extends Controller
$serverAttributes = Pterodactyl::getServerAttributes($server->pterodactyl_id);
$serverRelationships = $serverAttributes['relationships'];
- // Get node resource allocation info
+ // Get node resource allocation info
$nodeId = $serverRelationships['node']['attributes']['id'];
$node = Node::where('id', $nodeId)->firstOrFail();
$nodeName = $node->name;
@@ -277,7 +277,7 @@ class ServerController extends Controller
$requireMemory = $newProduct->memory - $oldProduct->memory;
$requiredisk = $newProduct->disk - $oldProduct->disk;
$checkResponse = Pterodactyl::checkNodeResources($node, $requireMemory, $requiredisk);
- if ($checkResponse == False) return redirect()->route('servers.index')->with('error', __("The node '" . $nodeName . "' doesn't have the required memory or disk left to upgrade the server."));
+ if ($checkResponse == False) return redirect()->route('servers.index')->with('error', __("The node '" . $nodeName . "' doesn't have the required memory or disk left to upgrade the server.". $requiredisk. "disk, ".$requireMemory));
$priceupgrade = $newProduct->getHourlyPrice();
From 5dff5e56fdcad22ad65c2407fb8e48af3b7a168f Mon Sep 17 00:00:00 2001
From: 1day2die
Date: Mon, 15 Aug 2022 16:17:44 +0200
Subject: [PATCH 10/33] g
---
app/Classes/Pterodactyl.php | 3 +++
app/Http/Controllers/ServerController.php | 2 +-
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/app/Classes/Pterodactyl.php b/app/Classes/Pterodactyl.php
index a7bc9bd5..2433a4fe 100644
--- a/app/Classes/Pterodactyl.php
+++ b/app/Classes/Pterodactyl.php
@@ -11,6 +11,7 @@ use Exception;
use Illuminate\Http\Client\PendingRequest;
use Illuminate\Http\Client\Response;
use Illuminate\Support\Facades\Http;
+use Illuminate\Support\Facades\Log;
class Pterodactyl
{
@@ -369,7 +370,9 @@ class Pterodactyl
}
$node = $response['attributes'];
$freeMemory = $node['memory'] - $node['allocated_resources']['memory'];
+ Log::debug("Free Memory:".$freeMemory);
$freeDisk = $node['disk'] - $node['allocated_resources']['disk'];
+ Log::debug("Free Memory:".$freeDisk);
if ($freeMemory < $requireMemory) {
return false;
}
diff --git a/app/Http/Controllers/ServerController.php b/app/Http/Controllers/ServerController.php
index 8dabf0a0..03c06313 100644
--- a/app/Http/Controllers/ServerController.php
+++ b/app/Http/Controllers/ServerController.php
@@ -277,7 +277,7 @@ class ServerController extends Controller
$requireMemory = $newProduct->memory - $oldProduct->memory;
$requiredisk = $newProduct->disk - $oldProduct->disk;
$checkResponse = Pterodactyl::checkNodeResources($node, $requireMemory, $requiredisk);
- if ($checkResponse == False) return redirect()->route('servers.index')->with('error', __("The node '" . $nodeName . "' doesn't have the required memory or disk left to upgrade the server.". $requiredisk. "disk, ".$requireMemory));
+ if ($checkResponse == False) return redirect()->route('servers.index')->with('error', __("The node '" . $nodeName . "' doesn't have the required memory or disk left to upgrade the server."));
$priceupgrade = $newProduct->getHourlyPrice();
From 09dba51fa6157cf9b4dbdece767b242fd2cad771 Mon Sep 17 00:00:00 2001
From: 1day2die
Date: Mon, 15 Aug 2022 16:22:31 +0200
Subject: [PATCH 11/33] Revert "g"
This reverts commit 5dff5e56fdcad22ad65c2407fb8e48af3b7a168f.
---
app/Classes/Pterodactyl.php | 3 ---
app/Http/Controllers/ServerController.php | 2 +-
2 files changed, 1 insertion(+), 4 deletions(-)
diff --git a/app/Classes/Pterodactyl.php b/app/Classes/Pterodactyl.php
index 2433a4fe..a7bc9bd5 100644
--- a/app/Classes/Pterodactyl.php
+++ b/app/Classes/Pterodactyl.php
@@ -11,7 +11,6 @@ use Exception;
use Illuminate\Http\Client\PendingRequest;
use Illuminate\Http\Client\Response;
use Illuminate\Support\Facades\Http;
-use Illuminate\Support\Facades\Log;
class Pterodactyl
{
@@ -370,9 +369,7 @@ class Pterodactyl
}
$node = $response['attributes'];
$freeMemory = $node['memory'] - $node['allocated_resources']['memory'];
- Log::debug("Free Memory:".$freeMemory);
$freeDisk = $node['disk'] - $node['allocated_resources']['disk'];
- Log::debug("Free Memory:".$freeDisk);
if ($freeMemory < $requireMemory) {
return false;
}
diff --git a/app/Http/Controllers/ServerController.php b/app/Http/Controllers/ServerController.php
index 03c06313..8dabf0a0 100644
--- a/app/Http/Controllers/ServerController.php
+++ b/app/Http/Controllers/ServerController.php
@@ -277,7 +277,7 @@ class ServerController extends Controller
$requireMemory = $newProduct->memory - $oldProduct->memory;
$requiredisk = $newProduct->disk - $oldProduct->disk;
$checkResponse = Pterodactyl::checkNodeResources($node, $requireMemory, $requiredisk);
- if ($checkResponse == False) return redirect()->route('servers.index')->with('error', __("The node '" . $nodeName . "' doesn't have the required memory or disk left to upgrade the server."));
+ if ($checkResponse == False) return redirect()->route('servers.index')->with('error', __("The node '" . $nodeName . "' doesn't have the required memory or disk left to upgrade the server.". $requiredisk. "disk, ".$requireMemory));
$priceupgrade = $newProduct->getHourlyPrice();
From 11c29739c7ba4e967681277b4869837059a5aead Mon Sep 17 00:00:00 2001
From: 1day2die
Date: Mon, 15 Aug 2022 16:22:38 +0200
Subject: [PATCH 12/33] Revert "Update ServerController.php"
This reverts commit a443ae854f7de441bfa4f14d904035f88553a143.
---
app/Http/Controllers/ServerController.php | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/app/Http/Controllers/ServerController.php b/app/Http/Controllers/ServerController.php
index 8dabf0a0..f53f4756 100644
--- a/app/Http/Controllers/ServerController.php
+++ b/app/Http/Controllers/ServerController.php
@@ -268,7 +268,7 @@ class ServerController extends Controller
$serverAttributes = Pterodactyl::getServerAttributes($server->pterodactyl_id);
$serverRelationships = $serverAttributes['relationships'];
- // Get node resource allocation info
+ // Get node resource allocation info
$nodeId = $serverRelationships['node']['attributes']['id'];
$node = Node::where('id', $nodeId)->firstOrFail();
$nodeName = $node->name;
@@ -277,7 +277,7 @@ class ServerController extends Controller
$requireMemory = $newProduct->memory - $oldProduct->memory;
$requiredisk = $newProduct->disk - $oldProduct->disk;
$checkResponse = Pterodactyl::checkNodeResources($node, $requireMemory, $requiredisk);
- if ($checkResponse == False) return redirect()->route('servers.index')->with('error', __("The node '" . $nodeName . "' doesn't have the required memory or disk left to upgrade the server.". $requiredisk. "disk, ".$requireMemory));
+ if ($checkResponse == False) return redirect()->route('servers.index')->with('error', __("The node '" . $nodeName . "' doesn't have the required memory or disk left to upgrade the server."));
$priceupgrade = $newProduct->getHourlyPrice();
From 39569917c70d9a766a320a111cde6aeb7a0db3b8 Mon Sep 17 00:00:00 2001
From: 1day2die
Date: Mon, 15 Aug 2022 19:03:13 +0200
Subject: [PATCH 13/33] Update settings.blade.php
---
resources/views/servers/settings.blade.php | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/resources/views/servers/settings.blade.php b/resources/views/servers/settings.blade.php
index 7607de10..59edb45e 100644
--- a/resources/views/servers/settings.blade.php
+++ b/resources/views/servers/settings.blade.php
@@ -256,7 +256,7 @@
Created on: {{ $ticket->created_at->diffForHumans() }}
+
From 07a2ebfcccd71a7e7998bad3eecf5601e2f039f8 Mon Sep 17 00:00:00 2001
From: 1day2die
Date: Wed, 17 Aug 2022 19:31:14 +0200
Subject: [PATCH 26/33] min required credits per product when upgrading
---
app/Http/Controllers/ServerController.php | 2 +-
resources/views/servers/settings.blade.php | 6 ++++--
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/app/Http/Controllers/ServerController.php b/app/Http/Controllers/ServerController.php
index 03c06313..cf731ddf 100644
--- a/app/Http/Controllers/ServerController.php
+++ b/app/Http/Controllers/ServerController.php
@@ -284,7 +284,7 @@ class ServerController extends Controller
if ($priceupgrade < $oldProduct->getHourlyPrice()) {
$priceupgrade = 0;
}
- if ($user->credits >= $priceupgrade)
+ if ($user->credits >= $priceupgrade && $user->credits >= $newProduct->minimum_credits)
{
$server->product_id = $request->product_upgrade;
diff --git a/resources/views/servers/settings.blade.php b/resources/views/servers/settings.blade.php
index 942457f6..e320533c 100644
--- a/resources/views/servers/settings.blade.php
+++ b/resources/views/servers/settings.blade.php
@@ -227,7 +227,7 @@
{{ __('Upgrade / Downgrade') }}
- @endif
+
@@ -255,7 +255,8 @@
@foreach($products as $product)
@if(in_array($server->egg, $product->eggs) && $product->id != $server->product->id && $product->disabled == false)
-
+
@endif
@endforeach
@@ -269,6 +270,7 @@
+ @endif