diff --git a/app/Classes/Settings/System.php b/app/Classes/Settings/System.php index 3cfd8517..419b2dcc 100644 --- a/app/Classes/Settings/System.php +++ b/app/Classes/Settings/System.php @@ -45,7 +45,7 @@ public function checkPteroClientkey(){ "per-page-limit" => "required|min:0|integer", "pterodactyl-admin-api-key" => "required|string", "enable-upgrades" => "string", - + "enable-disable-servers" => "string", ]); $validator->after(function ($validator) use ($request) { @@ -85,6 +85,8 @@ public function checkPteroClientkey(){ "SETTINGS::SYSTEM:ENABLE_LOGIN_LOGO" => "enable-login-logo", "SETTINGS::SYSTEM:PTERODACTYL:ADMIN_USER_TOKEN" => "pterodactyl-admin-api-key", "SETTINGS::SYSTEM:ENABLE_UPGRADE" => "enable-upgrade", + "SETTINGS::SYSTEM:DISABLE_NEW_SERVERS" => "enable-disable-servers", + "SETTINGS::SYSTEM:DISABLE_NEW_USERS" => "enable-disable-new-users", ]; diff --git a/app/Http/Controllers/ServerController.php b/app/Http/Controllers/ServerController.php index 5ee16dd5..d2b80a23 100644 --- a/app/Http/Controllers/ServerController.php +++ b/app/Http/Controllers/ServerController.php @@ -135,6 +135,11 @@ class ServerController extends Controller if (config('SETTINGS::USER:FORCE_EMAIL_VERIFICATION', 'false') === 'true' && !Auth::user()->hasVerifiedEmail()) { return redirect()->route('profile.index')->with('error', __("You are required to verify your email address before you can create a server.")); } + + //Required Verification for creating an server + if (config('SETTINGS::SYSTEM:DISABLE_NEW_SERVERS', 'false') === 'true' && !Auth::user()->role === "admin") { + return redirect()->route('servers.index')->with('error', __("The system administrator has prevented the creation of new servers.")); + } //Required Verification for creating an server if (config('SETTINGS::USER:FORCE_DISCORD_VERIFICATION', 'false') === 'true' && !Auth::user()->discordUser) { diff --git a/database/seeders/Seeds/SettingsSeeder.php b/database/seeders/Seeds/SettingsSeeder.php index 4e9dc12d..9582b772 100644 --- a/database/seeders/Seeds/SettingsSeeder.php +++ b/database/seeders/Seeds/SettingsSeeder.php @@ -522,5 +522,19 @@ class SettingsSeeder extends Seeder 'type' => 'string', 'description' => 'Enables the updgrade/downgrade feature for servers' ]); + Settings::firstOrCreate([ + 'key' => 'SETTINGS::SYSTEM:DISABLE_NEW_SERVERS', + ], [ + 'value' => "", + 'type' => 'boolean', + 'description' => 'Enable/disable the creation of new servers' + ]); + Settings::firstOrCreate([ + 'key' => 'SETTINGS::SYSTEM:DISABLE_NEW_USERS', + ], [ + 'value' => "", + 'type' => 'boolean', + 'description' => 'Enable/disable the creation of new users' + ]); } } diff --git a/resources/views/admin/settings/tabs/system.blade.php b/resources/views/admin/settings/tabs/system.blade.php index dee381c2..ae1cc40a 100644 --- a/resources/views/admin/settings/tabs/system.blade.php +++ b/resources/views/admin/settings/tabs/system.blade.php @@ -128,12 +128,18 @@ -
{{__('Register a new membership')}}
+{{__('Register a new membership')}}
-