Browse Source

(Refactor) Validation and variable modification to align with the input data

Jens 2 years ago
parent
commit
f7ab52fec1

+ 23 - 3
app/Settings/GeneralSettings.php

@@ -6,13 +6,13 @@ use Spatie\LaravelSettings\Settings;
 
 class GeneralSettings extends Settings
 {
-    public bool $store_enabled = true;
+    public bool $store_enabled = false;
     public string $credits_display_name;
     public bool $recaptcha_enabled;
     public string $recaptcha_site_key;
     public string $recaptcha_secret_key;
     public string $phpmyadmin_url;
-    public bool $alert_enabled;
+    public bool $alert_enabled = false;
     public string $alert_type;
     public string $alert_message;
     public string $theme;
@@ -32,6 +32,26 @@ class GeneralSettings extends Settings
         ];
     }
 
+    /**
+     * Summary of validations array
+     * @return array<string, string>
+     */
+    public static function getValidations()
+    {
+        return [
+            'store_enabled' => 'boolean',
+            'credits_display_name' => 'required|string',
+            'recaptcha_enabled' => 'nullable|boolean',
+            'recaptcha_site_key' => 'nullable|string',
+            'recaptcha_secret_key' => 'nullable|string',
+            'phpmyadmin_url' => 'nullable|string',
+            'alert_enabled' => 'nullable|boolean',
+            'alert_type' => 'required|in:primary,secondary,success,danger,warning,info',
+            'alert_message' => 'required|string',
+            'theme' => 'required|in:default,BlueInfinity' // TODO: themes should be made/loaded dynamically
+        ];
+    }
+
     /**
      * Summary of optionTypes
      * Only used for the settings page
@@ -110,7 +130,7 @@ class GeneralSettings extends Settings
                 'options' => [
                     'default' => 'Default',
                     'BlueInfinity' => 'Blue Infinity',
-                ],
+                ], // TODO: themes should be made/loaded dynamically
                 'description' => 'The theme to use for the site.'
             ],
         ];

+ 9 - 9
app/Settings/InvoiceSettings.php

@@ -6,21 +6,21 @@ use Spatie\LaravelSettings\Settings;
 
 class InvoiceSettings extends Settings
 {
-    public string $company_address;
+    public ?string $company_address;
 
-    public string $company_mail;
+    public ?string $company_mail;
 
-    public string $company_name;
+    public ?string $company_name;
 
-    public string $company_phone;
+    public ?string $company_phone;
 
-    public string $company_vat;
+    public ?string $company_vat;
 
-    public string $company_website;
+    public ?string $company_website;
 
-    public bool $enabled;
+    public bool $enabled = false;
 
-    public string $prefix;
+    public ?string $prefix;
 
     public static function group(): string
     {
@@ -40,7 +40,7 @@ class InvoiceSettings extends Settings
             'company_phone' => 'nullable|string',
             'company_vat' => 'nullable|string',
             'company_website' => 'nullable|string',
-            'enabled' => 'nullable|string',
+            'enabled' => 'nullable|boolean',
             'prefix' => 'nullable|string',
         ];
     }

+ 7 - 7
app/Settings/LocaleSettings.php

@@ -6,15 +6,15 @@ use Spatie\LaravelSettings\Settings;
 
 class LocaleSettings extends Settings
 {
-    public string $available;
+    public ?string $available;
 
-    public bool $clients_can_change;
+    public bool $clients_can_change = false;
 
-    public string $datatables;
+    public ?string $datatables;
 
     public string $default;
 
-    public bool $dynamic;
+    public bool $dynamic = false;
 
     public static function group(): string
     {
@@ -29,10 +29,10 @@ class LocaleSettings extends Settings
     {
         return [
             'available' => 'nullable|array',
-            'clients_can_change' => 'nullable|string',
+            'clients_can_change' => 'nullable|boolean',
             'datatables' => 'nullable|string',
-            'default' => 'nullable|string',
-            'dynamic' => 'nullable|string',
+            'default' => 'required|in:' . implode(',', config('app.available_locales')),
+            'dynamic' => 'nullable|boolean',
         ];
     }
 

+ 1 - 1
app/Settings/MailSettings.php

@@ -22,7 +22,7 @@ class MailSettings extends Settings
 
     public ?string $mail_mailer;
 
-    public ?bool $mail_enabled;
+    public bool $mail_enabled = false;
 
     public static function group(): string
     {

+ 6 - 6
app/Settings/PterodactylSettings.php

@@ -6,11 +6,11 @@ use Spatie\LaravelSettings\Settings;
 
 class PterodactylSettings extends Settings
 {
-    public ?string $admin_token;
+    public string $admin_token;
 
-    public ?string $user_token;
+    public string $user_token;
 
-    public ?string $panel_url;
+    public string $panel_url;
 
     public int $per_page_limit;
 
@@ -44,9 +44,9 @@ class PterodactylSettings extends Settings
     public static function getValidations()
     {
         return [
-            'panel_url' => 'nullable|string|url',
-            'admin_token' => 'nullable|string',
-            'user_token' => 'nullable|string',
+            'panel_url' => 'required|string|url',
+            'admin_token' => 'required|string',
+            'user_token' => 'required|string',
             'per_page_limit' => 'required|integer|min:1|max:10000',
         ];
     }

+ 7 - 7
app/Settings/ReferralSettings.php

@@ -8,15 +8,15 @@ class ReferralSettings extends Settings
 {
     public string $allowed;
 
-    public bool $always_give_commission;
+    public bool $always_give_commission = false;
 
-    public bool $enabled;
+    public bool $enabled = false;
 
-    public float $reward;
+    public ?float $reward;
 
     public string $mode;
 
-    public int $percentage;
+    public ?int $percentage;
 
     public static function group(): string
     {
@@ -30,11 +30,11 @@ class ReferralSettings extends Settings
     public static function getValidations()
     {
         return [
-            'allowed' => 'nullable|string',
+            'allowed' => 'required|in:everyone,clients',
             'always_give_commission' => 'nullable|boolean',
             'enabled' => 'nullable|boolean',
             'reward' => 'nullable|numeric',
-            'mode' => 'nullable|string',
+            'mode' => 'required|in:commission,percentage,both',
             'percentage' => 'nullable|numeric',
         ];
     }
@@ -77,7 +77,7 @@ class ReferralSettings extends Settings
                 'type' => 'select',
                 'description' => 'Referral mode.',
                 'options' => [
-                    'comission' => 'Comission',
+                    'commission' => 'Commission',
                     'sign-up' => 'Sign-Up',
                     'both' => 'Both',
                 ],

+ 6 - 6
app/Settings/ServerSettings.php

@@ -8,11 +8,11 @@ class ServerSettings extends Settings
 {
     public int $allocation_limit;
 
-    public bool $creation_enabled;
+    public bool $creation_enabled = false;
 
-    public bool $enable_upgrade;
+    public bool $enable_upgrade = false;
 
-    public bool $charge_first_hour;
+    public bool $charge_first_hour = false;
 
     public static function group(): string
     {
@@ -27,9 +27,9 @@ class ServerSettings extends Settings
     {
         return [
             'allocation_limit' => 'required|integer|min:0',
-            'creation_enabled' => 'nullable|string',
-            'enable_upgrade' => 'nullable|string',
-            'charge_first_hour' => 'nullable|string',
+            'creation_enabled' => 'nullable|boolean',
+            'enable_upgrade' => 'nullable|boolean',
+            'charge_first_hour' => 'nullable|boolean',
         ];
     }
 

+ 2 - 2
app/Settings/TicketSettings.php

@@ -6,7 +6,7 @@ use Spatie\LaravelSettings\Settings;
 
 class TicketSettings extends Settings
 {
-    public bool $enabled;
+    public bool $enabled = false;
 
     public string $notify;
 
@@ -22,7 +22,7 @@ class TicketSettings extends Settings
     public static function getValidations()
     {
         return [
-            'enabled' => 'nullable|string',
+            'enabled' => 'nullable|boolean',
             'notify' => 'nullable|string',
         ];
     }

+ 8 - 8
app/Settings/UserSettings.php

@@ -10,9 +10,9 @@ class UserSettings extends Settings
 
     public float $credits_reward_after_verify_email;
 
-    public bool $force_discord_verification;
+    public bool $force_discord_verification = false;
 
-    public bool $force_email_verification;
+    public bool $force_email_verification = false;
 
     public float $initial_credits;
 
@@ -26,9 +26,9 @@ class UserSettings extends Settings
 
     public int $server_limit_after_verify_email;
 
-    public bool $register_ip_check;
+    public bool $register_ip_check = false;
 
-    public bool $creation_enabled;
+    public bool $creation_enabled = false;
 
     public static function group(): string
     {
@@ -44,16 +44,16 @@ class UserSettings extends Settings
         return [
             'credits_reward_after_verify_discord' => 'required|numeric',
             'credits_reward_after_verify_email' => 'required|numeric',
-            'force_discord_verification' => 'nullable|string',
-            'force_email_verification' => 'nullable|string',
+            'force_discord_verification' => 'nullable|boolean',
+            'force_email_verification' => 'nullable|boolean',
             'initial_credits' => 'required|numeric',
             'initial_server_limit' => 'required|numeric',
             'min_credits_to_make_server' => 'required|numeric',
             'server_limit_after_irl_purchase' => 'required|numeric',
             'server_limit_after_verify_discord' => 'required|numeric',
             'server_limit_after_verify_email' => 'required|numeric',
-            'register_ip_check' => 'nullable|string',
-            'creation_enabled' => 'nullable|string',
+            'register_ip_check' => 'nullable|boolean',
+            'creation_enabled' => 'nullable|boolean',
         ];
     }
 

+ 15 - 15
app/Settings/WebsiteSettings.php

@@ -8,20 +8,20 @@ class WebsiteSettings extends Settings
 {
 
 
-    public bool $show_imprint;
+    public bool $show_imprint = false;
 
-    public bool $show_privacy;
+    public bool $show_privacy = false;
 
-    public bool $show_tos;
+    public bool $show_tos = false;
 
-    public bool $useful_links_enabled;
-    public bool $enable_login_logo;
-    public string $seo_title;
+    public bool $useful_links_enabled = false;
+    public bool $enable_login_logo = false;
+    public ?string $seo_title;
 
-    public string $seo_description;
-    public bool $motd_enabled;
+    public ?string $seo_description;
+    public bool $motd_enabled = false;
 
-    public string $motd_message;
+    public ?string $motd_message;
 
     public static function group(): string
     {
@@ -35,13 +35,13 @@ class WebsiteSettings extends Settings
     public static function getValidations()
     {
         return [
-            'motd_enabled' => 'nullable|string',
+            'motd_enabled' => 'nullable|boolean',
             'motd_message' => 'nullable|string',
-            'show_imprint' => 'nullable|string',
-            'show_privacy' => 'nullable|string',
-            'show_tos' => 'nullable|string',
-            'useful_links_enabled' => 'nullable|string',
-            'enable_login_logo' => 'nullable|string',
+            'show_imprint' => 'nullable|boolean',
+            'show_privacy' => 'nullable|boolean',
+            'show_tos' => 'nullable|boolean',
+            'useful_links_enabled' => 'nullable|boolean',
+            'enable_login_logo' => 'nullable|boolean',
             'seo_title' => 'nullable|string',
             'seo_description' => 'nullable|string',
         ];