diff --git a/app/Filament/Pages/Settings/GeneralPage.php b/app/Filament/Pages/Settings/GeneralPage.php index 599b42941..17a392960 100644 --- a/app/Filament/Pages/Settings/GeneralPage.php +++ b/app/Filament/Pages/Settings/GeneralPage.php @@ -114,6 +114,18 @@ public function form(Form $form): Form 'default' => 1, 'md' => 2, ]), + + Forms\Components\Section::make('Public Dashboard Settings') + ->schema([ + Forms\Components\Toggle::make('public_dashboard_enabled') + ->label('Enable') + ->columnSpan(2), + ]) + ->compact() + ->columns([ + 'default' => 1, + 'md' => 2, + ]), ]) ->columnSpan('full'), ]); diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php index 24f8aab25..c1656151a 100644 --- a/app/Http/Controllers/HomeController.php +++ b/app/Http/Controllers/HomeController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers; use App\Models\Result; +use App\Settings\GeneralSettings; use Illuminate\Http\Request; class HomeController extends Controller @@ -12,6 +13,11 @@ class HomeController extends Controller */ public function __invoke(Request $request) { + $settings = new GeneralSettings(); + if (!$settings->public_dashboard_enabled) { + return redirect()->route('filament.admin.auth.login'); + } + $latestResult = Result::query() ->select(['id', 'ping', 'download', 'upload', 'successful', 'created_at']) ->latest() diff --git a/app/Settings/GeneralSettings.php b/app/Settings/GeneralSettings.php index ee48bc82b..a7a4ed50a 100644 --- a/app/Settings/GeneralSettings.php +++ b/app/Settings/GeneralSettings.php @@ -19,6 +19,8 @@ class GeneralSettings extends Settings public string $timezone; + public bool $public_dashboard_enabled; + public static function group(): string { return 'general'; diff --git a/database/settings/2023_10_07_113220_add_public_dashboard_enabled_to_general_settings.php b/database/settings/2023_10_07_113220_add_public_dashboard_enabled_to_general_settings.php new file mode 100644 index 000000000..d4dcee06d --- /dev/null +++ b/database/settings/2023_10_07_113220_add_public_dashboard_enabled_to_general_settings.php @@ -0,0 +1,11 @@ +migrator->add('general.public_dashboard_enabled', true); + } +};