2017-12-15 03:05:26 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace Pterodactyl\Http\Controllers\Admin\Settings;
|
|
|
|
|
|
|
|
use Illuminate\View\View;
|
|
|
|
use Illuminate\Http\RedirectResponse;
|
|
|
|
use Prologue\Alerts\AlertsMessageBag;
|
|
|
|
use Illuminate\Contracts\Console\Kernel;
|
2022-10-14 16:59:20 +00:00
|
|
|
use Illuminate\View\Factory as ViewFactory;
|
2017-12-15 03:05:26 +00:00
|
|
|
use Pterodactyl\Http\Controllers\Controller;
|
|
|
|
use Illuminate\Contracts\Config\Repository as ConfigRepository;
|
|
|
|
use Pterodactyl\Contracts\Repository\SettingsRepositoryInterface;
|
|
|
|
use Pterodactyl\Http\Requests\Admin\Settings\AdvancedSettingsFormRequest;
|
|
|
|
|
|
|
|
class AdvancedController extends Controller
|
|
|
|
{
|
|
|
|
/**
|
|
|
|
* AdvancedController constructor.
|
|
|
|
*/
|
|
|
|
public function __construct(
|
2022-10-14 16:59:20 +00:00
|
|
|
private AlertsMessageBag $alert,
|
|
|
|
private ConfigRepository $config,
|
|
|
|
private Kernel $kernel,
|
|
|
|
private SettingsRepositoryInterface $settings,
|
|
|
|
private ViewFactory $view
|
2017-12-15 03:05:26 +00:00
|
|
|
) {
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Render advanced Panel settings UI.
|
|
|
|
*/
|
|
|
|
public function index(): View
|
|
|
|
{
|
|
|
|
$showRecaptchaWarning = false;
|
|
|
|
if (
|
|
|
|
$this->config->get('recaptcha._shipped_secret_key') === $this->config->get('recaptcha.secret_key')
|
|
|
|
|| $this->config->get('recaptcha._shipped_website_key') === $this->config->get('recaptcha.website_key')
|
|
|
|
) {
|
|
|
|
$showRecaptchaWarning = true;
|
|
|
|
}
|
|
|
|
|
2022-10-14 16:59:20 +00:00
|
|
|
return $this->view->make('admin.settings.advanced', [
|
2017-12-15 03:05:26 +00:00
|
|
|
'showRecaptchaWarning' => $showRecaptchaWarning,
|
|
|
|
]);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
2018-05-13 16:19:35 +00:00
|
|
|
* @throws \Pterodactyl\Exceptions\Model\DataValidationException
|
|
|
|
* @throws \Pterodactyl\Exceptions\Repository\RecordNotFoundException
|
2017-12-15 03:05:26 +00:00
|
|
|
*/
|
|
|
|
public function update(AdvancedSettingsFormRequest $request): RedirectResponse
|
|
|
|
{
|
|
|
|
foreach ($request->normalize() as $key => $value) {
|
|
|
|
$this->settings->set('settings::' . $key, $value);
|
|
|
|
}
|
|
|
|
|
|
|
|
$this->kernel->call('queue:restart');
|
|
|
|
$this->alert->success('Advanced settings have been updated successfully and the queue worker was restarted to apply these changes.')->flash();
|
|
|
|
|
|
|
|
return redirect()->route('admin.settings.advanced');
|
|
|
|
}
|
|
|
|
}
|