Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
pterodactyl
GitHub Repository: pterodactyl/panel
Path: blob/1.0-develop/app/Http/Controllers/Admin/Settings/AdvancedController.php
10284 views
1
<?php
2
3
namespace Pterodactyl\Http\Controllers\Admin\Settings;
4
5
use Illuminate\View\View;
6
use Illuminate\Http\RedirectResponse;
7
use Prologue\Alerts\AlertsMessageBag;
8
use Illuminate\Contracts\Console\Kernel;
9
use Pterodactyl\Http\Controllers\Controller;
10
use Illuminate\Contracts\Config\Repository as ConfigRepository;
11
use Pterodactyl\Contracts\Repository\SettingsRepositoryInterface;
12
use Pterodactyl\Http\Requests\Admin\Settings\AdvancedSettingsFormRequest;
13
14
class AdvancedController extends Controller
15
{
16
/**
17
* AdvancedController constructor.
18
*/
19
public function __construct(
20
private AlertsMessageBag $alert,
21
private ConfigRepository $config,
22
private Kernel $kernel,
23
private SettingsRepositoryInterface $settings,
24
) {
25
}
26
27
/**
28
* Render advanced Panel settings UI.
29
*/
30
public function index(): View
31
{
32
$showRecaptchaWarning = false;
33
if (
34
$this->config->get('recaptcha._shipped_secret_key') === $this->config->get('recaptcha.secret_key')
35
|| $this->config->get('recaptcha._shipped_website_key') === $this->config->get('recaptcha.website_key')
36
) {
37
$showRecaptchaWarning = true;
38
}
39
40
return view('admin.settings.advanced', [
41
'showRecaptchaWarning' => $showRecaptchaWarning,
42
]);
43
}
44
45
/**
46
* @throws \Pterodactyl\Exceptions\Model\DataValidationException
47
* @throws \Pterodactyl\Exceptions\Repository\RecordNotFoundException
48
*/
49
public function update(AdvancedSettingsFormRequest $request): RedirectResponse
50
{
51
foreach ($request->normalize() as $key => $value) {
52
$this->settings->set('settings::' . $key, $value);
53
}
54
55
$this->kernel->call('queue:restart');
56
$this->alert->success('Advanced settings have been updated successfully and the queue worker was restarted to apply these changes.')->flash();
57
58
return redirect()->route('admin.settings.advanced');
59
}
60
}
61
62