Bladeren bron

Forced Discord Account and Mail Verification

#72 This is configurable using:
VERIFIED_DISCORD_TO_MAKE_SERVER and VERIFIED_EMAIL_TO_MAKE_SERVER')
Johannes 4 jaren geleden
bovenliggende
commit
b6a654082a
2 gewijzigde bestanden met toevoegingen van 33 en 15 verwijderingen
  1. 10 6
      app/Http/Controllers/ServerController.php
  2. 23 9
      database/seeders/ConfigurationSeeder.php

+ 10 - 6
app/Http/Controllers/ServerController.php

@@ -11,12 +11,7 @@ use App\Models\Node;
 use App\Models\Product;
 use App\Models\Server;
 use App\Notifications\ServerCreationError;
-use Exception;
-use Illuminate\Contracts\View\Factory;
-use Illuminate\Contracts\View\View;
-use Illuminate\Http\RedirectResponse;
 use Illuminate\Http\Request;
-use Illuminate\Http\Response;
 use Illuminate\Support\Facades\Auth;
 
 
@@ -38,6 +33,16 @@ class ServerController extends Controller
             return redirect()->route('servers.index')->with('error', "You've already reached your server limit!");
         }
 
+        //Required Verification for creating an server
+        if(Configuration::getValueByKey('VERIFIED_EMAIL_TO_MAKE_SERVER') === 'true' && !Auth::user()->hasVerifiedEmail()) {
+            return redirect()->route('profile.index')->with('error', "You havent verified your email! Thats required to create an server.");
+        }
+
+        //Required Verification for creating an server
+        if(Configuration::getValueByKey('VERIFIED_DISCORD_TO_MAKE_SERVER') === 'true' && !Auth::user()->discordUser) {
+            return redirect()->route('profile.index')->with('error', "You havent linked an Discord Account to your profile! Thats required to create an server");
+        }
+
         //minimum credits
         if (Auth::user()->credits <= Configuration::getValueByKey('MINIMUM_REQUIRED_CREDITS_TO_MAKE_SERVER' , 50)) {
             return redirect()->route('servers.index')->with('error', "You do not have the required amount of credits to create a new server!");
@@ -68,7 +73,6 @@ class ServerController extends Controller
         if (Auth::user()->servers()->count() >= Auth::user()->server_limit) {
             return redirect()->route('servers.index')->with('error', 'Server limit reached!');
         }
-
         //minimum credits
         if (Auth::user()->credits <= Configuration::getValueByKey('MINIMUM_REQUIRED_CREDITS_TO_MAKE_SERVER' , 50)) {
             return redirect()->route('servers.index')->with('error', "You do not have the required amount of credits to create a new server!");

+ 23 - 9
database/seeders/ConfigurationSeeder.php

@@ -19,14 +19,14 @@ class ConfigurationSeeder extends Seeder
             'key' => 'INITIAL_CREDITS',
         ], [
             'value' => '250',
-            'type'  => 'integer',
+            'type' => 'integer',
         ]);
 
         Configuration::firstOrCreate([
             'key' => 'INITIAL_SERVER_LIMIT',
         ], [
             'value' => '1',
-            'type'  => 'integer',
+            'type' => 'integer',
         ]);
 
         //verify email event
@@ -34,29 +34,43 @@ class ConfigurationSeeder extends Seeder
             'key' => 'CREDITS_REWARD_AFTER_VERIFY_EMAIL',
         ], [
             'value' => '250',
-            'type'  => 'integer',
+            'type' => 'integer',
+        ]);
+
+        Configuration::firstOrCreate([
+            'key' => 'VERIFIED_EMAIL_TO_MAKE_SERVER',
+        ], [
+            'value' => 'true',
+            'type' => 'boolean',
+        ]);
+
+        Configuration::firstOrCreate([
+            'key' => 'VERIFIED_DISCORD_TO_MAKE_SERVER',
+        ], [
+            'value' => 'true',
+            'type' => 'boolean',
         ]);
 
         Configuration::firstOrCreate([
             'key' => 'SERVER_LIMIT_REWARD_AFTER_VERIFY_EMAIL',
         ], [
             'value' => '2',
-            'type'  => 'integer',
+            'type' => 'integer',
         ]);
 
         //verify discord event
         Configuration::firstOrCreate([
-            'key'   => 'CREDITS_REWARD_AFTER_VERIFY_DISCORD',
-        ] , [
+            'key' => 'CREDITS_REWARD_AFTER_VERIFY_DISCORD',
+        ], [
             'value' => '375',
-            'type'  => 'integer',
+            'type' => 'integer',
         ]);
 
         Configuration::firstOrCreate([
             'key' => 'SERVER_LIMIT_REWARD_AFTER_VERIFY_DISCORD',
         ], [
             'value' => '2',
-            'type'  => 'integer',
+            'type' => 'integer',
         ]);
 
         //other
@@ -64,7 +78,7 @@ class ConfigurationSeeder extends Seeder
             'key' => 'MINIMUM_REQUIRED_CREDITS_TO_MAKE_SERVER',
         ], [
             'value' => '50',
-            'type'  => 'integer',
+            'type' => 'integer',
         ]);
     }
 }