System.php 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <?php
  2. namespace App\Classes\Settings;
  3. use App\Models\Settings;
  4. use Illuminate\Http\Request;
  5. use Illuminate\Support\Facades\Cache;
  6. use Illuminate\Support\Facades\Validator;
  7. class System
  8. {
  9. public function __construct()
  10. {
  11. return;
  12. }
  13. public function updateSettings(Request $request)
  14. {
  15. $validator = Validator::make($request->all(), [
  16. "register-ip-check" => "string",
  17. "server-create-charge-first-hour" => "string",
  18. "credits-display-name" => "required|string",
  19. "allocation-limit" => "required|min:0|integer",
  20. "force-email-verification" => "string",
  21. "force-discord-verification" => "string",
  22. "initial-credits" => "required|min:0|integer",
  23. "initial-server-limit" => "required|min:0|integer",
  24. "credits-reward-amount-discord" => "required|min:0|integer",
  25. "credits-reward-amount-email" => "required|min:0|integer",
  26. "server-limit-discord" => "required|min:0|integer",
  27. "server-limit-email" => "required|min:0|integer",
  28. "pterodactyl-api-key" => "required|string",
  29. "pterodactyl-url" => "required|string",
  30. ]);
  31. if ($validator->fails()) {
  32. return redirect(route('admin.settings.index') . '#system')->with('error', __('System settings have not been updated!'))->withErrors($validator)
  33. ->withInput();
  34. }
  35. $values = [
  36. "SETTINGS::SYSTEM:REGISTER_IP_CHECK" => "register-ip-check",
  37. "SETTINGS::SYSTEM:SERVER_CREATE_CHARGE_FIRST_HOUR" => "server-create-charge-first-hour",
  38. "SETTINGS::SYSTEM:CREDITS_DISPLAY_NAME" => "credits-display-name",
  39. "SETTINGS::SERVER:ALLOCATION_LIMIT" => "allocation-limit",
  40. "SETTINGS::USER:FORCE_DISCORD_VERIFICATION" => "force-discord-verification",
  41. "SETTINGS::USER:FORCE_EMAIL_VERIFICATION" => "force-email-verification",
  42. "SETTINGS::USER:INITIAL_CREDITS" => "initial-credits",
  43. "SETTINGS::USER:INITIAL_SERVER_LIMIT" => "initial-server-limit",
  44. "SETTINGS::USER:CREDITS_REWARD_AFTER_VERIFY_DISCORD" => "credits-reward-amount-discord",
  45. "SETTINGS::USER:CREDITS_REWARD_AFTER_VERIFY_EMAIL" => "credits-reward-amount-email",
  46. "SETTINGS::USER:SERVER_LIMIT_REWARD_AFTER_VERIFY_DISCORD" => "server-limit-discord",
  47. "SETTINGS::USER:SERVER_LIMIT_REWARD_AFTER_VERIFY_EMAIL" => "server-limit-email",
  48. "SETTINGS::MISC:PHPMYADMIN:URL" => "phpmyadmin-url",
  49. "SETTINGS::SYSTEM:PTERODACTYL:URL" => "pterodactyl-url",
  50. "SETTINGS::SYSTEM:PTERODACTYL:TOKEN" => "pterodactyl-api-key",
  51. ];
  52. foreach ($values as $key => $value) {
  53. $param = $request->get($value);
  54. Settings::where('key', $key)->updateOrCreate(['key' => $key], ['value' => $param]);
  55. Cache::forget("setting" . ':' . $key);
  56. }
  57. return redirect(route('admin.settings.index') . '#system')->with('success', __('System settings updated!'));
  58. }
  59. }