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 @@ -
+
+
+ + +
@@ -209,6 +215,21 @@
+
+
+
+
+ + +
+ +
+
+
@@ -222,8 +243,6 @@ class="form-control @error('allocation-limit') is-invalid @enderror" required>
- -
{{-- Design --}} diff --git a/resources/views/auth/register.blade.php b/resources/views/auth/register.blade.php index e6263ac4..d2944292 100644 --- a/resources/views/auth/register.blade.php +++ b/resources/views/auth/register.blade.php @@ -2,118 +2,128 @@ @section('content') -
-
- -
- +
+
+ +
+ @if(config('SETTINGS::SYSTEM:DISABLE_NEW_USERS')) +
+
{{ __('Warning!') }}
+ {{ __('The system administrator has blocked the registration of new users') }} +
+ + @else + -
+ - @error('ip') - - {{ $message }} - - @enderror - - @error('registered') - - {{ $message }} - - @enderror - @if( $errors->has('ptero_registration_error') ) - @foreach( $errors->get('ptero_registration_error') as $err ) + @error('ip') - {{ $err }} - - @endforeach - @endif + {{ $message }} + + @enderror - @csrf -
-
- -
-
- + @error('registered') + + {{ $message }} + + @enderror + @if( $errors->has('ptero_registration_error') ) + @foreach( $errors->get('ptero_registration_error') as $err ) + + {{ $err }} + + @endforeach + @endif + + @csrf +
+
+ +
+
+ +
+
+
+ @error('name') + + {{ $message }} + + @enderror +
+ + +
+
+ +
+
+ +
+
+
+ @error('email') + + {{ $message }} + + @enderror +
+ +
+
+ +
+
+ +
+
+
+ @error('password') + + {{ $message }} + + @enderror +
+ +
+ +
+
+ +
-
- @error('name') - - {{ $message }} - - @enderror -
- - -
-
- -
-
- + @if(config('SETTINGS::REFERRAL::ENABLED') == "true") +
+ +
+
+ +
+
+ @endif + @if (config('SETTINGS::RECAPTCHA:ENABLED') == 'true') +
+ {!! htmlFormSnippet() !!} + @error('g-recaptcha-response') + + {{ $message }} + + @enderror
-
- @error('email') - - {{ $message }} - - @enderror -
+ @endif -
-
- -
-
- -
-
-
- @error('password') - - {{ $message }} - - @enderror -
+
+
-
- -
-
- -
-
-
- @if(config('SETTINGS::REFERRAL::ENABLED') == "true") -
- -
-
- -
-
-
- @endif - @if (config('SETTINGS::RECAPTCHA:ENABLED') == 'true') -
- {!! htmlFormSnippet() !!} - @error('g-recaptcha-response') - - {{ $message }} - - @enderror -
- @endif - -
-
{{--
--}} {{-- --}} {{--
+ @endif @endsection