Path: blob/1.0-develop/app/Http/Controllers/Admin/Settings/IndexController.php
10284 views
<?php12namespace Pterodactyl\Http\Controllers\Admin\Settings;34use Illuminate\View\View;5use Illuminate\Http\RedirectResponse;6use Prologue\Alerts\AlertsMessageBag;7use Illuminate\Contracts\Console\Kernel;8use Pterodactyl\Http\Controllers\Controller;9use Pterodactyl\Traits\Helpers\AvailableLanguages;10use Pterodactyl\Services\Helpers\SoftwareVersionService;11use Pterodactyl\Contracts\Repository\SettingsRepositoryInterface;12use Pterodactyl\Http\Requests\Admin\Settings\BaseSettingsFormRequest;1314class IndexController extends Controller15{16use AvailableLanguages;1718/**19* IndexController constructor.20*/21public function __construct(22private AlertsMessageBag $alert,23private Kernel $kernel,24private SettingsRepositoryInterface $settings,25private SoftwareVersionService $versionService,26) {27}2829/**30* Render the UI for basic Panel settings.31*/32public function index(): View33{34return view('admin.settings.index', [35'version' => $this->versionService,36'languages' => $this->getAvailableLanguages(true),37]);38}3940/**41* Handle settings update.42*43* @throws \Pterodactyl\Exceptions\Model\DataValidationException44* @throws \Pterodactyl\Exceptions\Repository\RecordNotFoundException45*/46public function update(BaseSettingsFormRequest $request): RedirectResponse47{48foreach ($request->normalize() as $key => $value) {49$this->settings->set('settings::' . $key, $value);50}5152$this->kernel->call('queue:restart');53$this->alert->success('Panel settings have been updated successfully and the queue worker was restarted to apply these changes.')->flash();5455return redirect()->route('admin.settings');56}57}585960