|
@@ -0,0 +1,63 @@
|
|
|
+<?php
|
|
|
+
|
|
|
+namespace Modules\LetsEncrypt\Providers\Filament;
|
|
|
+
|
|
|
+use Filament\Http\Middleware\Authenticate;
|
|
|
+use Filament\Http\Middleware\DisableBladeIconComponents;
|
|
|
+use Filament\Http\Middleware\DispatchServingFilamentEvent;
|
|
|
+use Filament\Pages;
|
|
|
+use Filament\Panel;
|
|
|
+use Filament\PanelProvider;
|
|
|
+use Filament\Support\Colors\Color;
|
|
|
+use Filament\Widgets;
|
|
|
+use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse;
|
|
|
+use Illuminate\Cookie\Middleware\EncryptCookies;
|
|
|
+use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken;
|
|
|
+use Illuminate\Routing\Middleware\SubstituteBindings;
|
|
|
+use Illuminate\Session\Middleware\AuthenticateSession;
|
|
|
+use Illuminate\Session\Middleware\StartSession;
|
|
|
+use Illuminate\View\Middleware\ShareErrorsFromSession;
|
|
|
+
|
|
|
+class AdminPanelProvider extends PanelProvider
|
|
|
+{
|
|
|
+ private string $module = "LetsEncrypt";
|
|
|
+ public function panel(Panel $panel): Panel
|
|
|
+ {
|
|
|
+ $moduleNamespace = $this->getModuleNamespace();
|
|
|
+ return $panel
|
|
|
+ ->id('letsencrypt::admin')
|
|
|
+ ->path('admin/modules/letsencrypt')
|
|
|
+ ->colors([
|
|
|
+ 'primary' => Color::Teal,
|
|
|
+ ])
|
|
|
+ ->discoverResources(in: module_path($this->module, 'Filament/Admin/Resources'), for: "$moduleNamespace\\Filament\\Admin\\Resources")
|
|
|
+ ->discoverPages(in: module_path($this->module, 'Filament/Admin/Pages'), for: "$moduleNamespace\\Filament\\Admin\\Pages")
|
|
|
+ ->pages([
|
|
|
+ Pages\Dashboard::class,
|
|
|
+ ])
|
|
|
+ ->discoverWidgets(in: module_path($this->module, 'Filament/Admin/Widgets'), for: "$moduleNamespace\\Filament\\Admin\\Widgets")
|
|
|
+ ->widgets([
|
|
|
+ Widgets\AccountWidget::class,
|
|
|
+ Widgets\FilamentInfoWidget::class,
|
|
|
+ ])
|
|
|
+ ->middleware([
|
|
|
+ EncryptCookies::class,
|
|
|
+ AddQueuedCookiesToResponse::class,
|
|
|
+ StartSession::class,
|
|
|
+ AuthenticateSession::class,
|
|
|
+ ShareErrorsFromSession::class,
|
|
|
+ VerifyCsrfToken::class,
|
|
|
+ SubstituteBindings::class,
|
|
|
+ DisableBladeIconComponents::class,
|
|
|
+ DispatchServingFilamentEvent::class,
|
|
|
+ ])
|
|
|
+ ->authMiddleware([
|
|
|
+ Authenticate::class,
|
|
|
+ ]);
|
|
|
+ }
|
|
|
+
|
|
|
+ protected function getModuleNamespace(): string
|
|
|
+ {
|
|
|
+ return config('modules.namespace').'\\'.$this->module;
|
|
|
+ }
|
|
|
+}
|