Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
pterodactyl
GitHub Repository: pterodactyl/panel
Path: blob/1.0-develop/app/Http/Controllers/Admin/Settings/IndexController.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 Pterodactyl\Traits\Helpers\AvailableLanguages;
11
use Pterodactyl\Services\Helpers\SoftwareVersionService;
12
use Pterodactyl\Contracts\Repository\SettingsRepositoryInterface;
13
use Pterodactyl\Http\Requests\Admin\Settings\BaseSettingsFormRequest;
14
15
class IndexController extends Controller
16
{
17
use AvailableLanguages;
18
19
/**
20
* IndexController constructor.
21
*/
22
public function __construct(
23
private AlertsMessageBag $alert,
24
private Kernel $kernel,
25
private SettingsRepositoryInterface $settings,
26
private SoftwareVersionService $versionService,
27
) {
28
}
29
30
/**
31
* Render the UI for basic Panel settings.
32
*/
33
public function index(): View
34
{
35
return view('admin.settings.index', [
36
'version' => $this->versionService,
37
'languages' => $this->getAvailableLanguages(true),
38
]);
39
}
40
41
/**
42
* Handle settings update.
43
*
44
* @throws \Pterodactyl\Exceptions\Model\DataValidationException
45
* @throws \Pterodactyl\Exceptions\Repository\RecordNotFoundException
46
*/
47
public function update(BaseSettingsFormRequest $request): RedirectResponse
48
{
49
foreach ($request->normalize() as $key => $value) {
50
$this->settings->set('settings::' . $key, $value);
51
}
52
53
$this->kernel->call('queue:restart');
54
$this->alert->success('Panel settings have been updated successfully and the queue worker was restarted to apply these changes.')->flash();
55
56
return redirect()->route('admin.settings');
57
}
58
}
59
60