<?php namespace App\Http\Controllers\Admin\Settings; use App\Models\Setting; use Illuminate\View\View; use Illuminate\Http\RedirectResponse; use Prologue\Alerts\AlertsMessageBag; use Illuminate\Contracts\Console\Kernel; use App\Http\Controllers\Controller; use App\Http\Requests\Admin\Settings\AdvancedSettingsFormRequest; class AdvancedController extends Controller { /** * AdvancedController constructor. */ public function __construct( private AlertsMessageBag $alert, private Kernel $kernel, ) { } /** * Render advanced Panel settings UI. */ public function index(): View { $showRecaptchaWarning = false; if ( config('recaptcha._shipped_secret_key') === config('recaptcha.secret_key') || config('recaptcha._shipped_website_key') === config('recaptcha.website_key') ) { $showRecaptchaWarning = true; } return view('admin.settings.advanced', [ 'showRecaptchaWarning' => $showRecaptchaWarning, ]); } /** * @throws \App\Exceptions\Model\DataValidationException */ public function update(AdvancedSettingsFormRequest $request): RedirectResponse { foreach ($request->normalize() as $key => $value) { Setting::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'); } }