brickx / laravel-filament-maintenance
从 Filament 切换维护模式的简单插件
Requires
- php: ^8.1
- blade-ui-kit/blade-icons: ^1.5
- filament/filament: ^2.17
- filament/notifications: ^2.17
- illuminate/contracts: ^9.0|^10.0
- livewire/livewire: ^2.10
- spatie/laravel-package-tools: ^1.15
Requires (Dev)
- laravel/pint: ^1.10
- nunomaduro/collision: ^7.9
- orchestra/testbench: ^8.5
- pestphp/pest: ^2.6
- pestphp/pest-plugin-arch: ^2.2
- pestphp/pest-plugin-laravel: ^2.0
- pestphp/pest-plugin-livewire: ^2.0
- spatie/laravel-ray: ^1.32
README
⚠️ 重要
此存储库已被 存档,因为可以在此处找到 Filament v3 的新版本:Maintenance Switch。
我会尽力使这个新存储库与 Filament v2 兼容,但我不能保证何时会发生。在此期间,您可以使用这个存档版本。
此插件允许您轻松从 Filament 管理面板切换维护模式。您还可以设置一个密钥令牌以绕过维护模式。
要求
此插件是为 Filament v2 开发的,并将很快被存档。
如果您正在使用 Filament v3,请查看此插件的全新存储库:brickx/maintenance-switch。
安装
您可以通过 composer 安装此包
composer require brickx/laravel-filament-maintenance
您可以使用以下命令发布配置文件
php artisan vendor:publish --tag="filament-maintenance-config"
这是已发布配置文件的内容
return [ 'secret' => null, 'refresh' => false, 'permissions' => false, 'role' => false, 'tiny_toggle' => false, ];
您可以使用以下命令发布翻译
php artisan vendor:publish --tag="filament-maintenance-translations"
可选,您可以使用以下命令发布视图
php artisan vendor:publish --tag="filament-maintenance-views"
设置
一个可选步骤(但强烈推荐)是修改 App\Http\Middleware\PreventRequestsDuringMaintenance
类,添加以下代码
use Illuminate\Foundation\Http\MaintenanceModeBypassCookie; use Illuminate\Http\RedirectResponse; ... protected function bypassResponse(string $secret) : RedirectResponse { return redirect('admin')->withCookie( MaintenanceModeBypassCookie::create($secret) ); }
这是因为 Laravel 的默认维护中间件将重定向到 /
路由,这对用户来说感觉有点奇怪。当然,您可以重定向到任何您想要的 URL。
用法
该插件将在您的 Filament 管理面板中添加一个切换按钮,位于搜索栏之前。
点击它将在网站在线时触发 php artisan down
命令,否则触发 php artisan up
命令。
密钥令牌
您可以在配置文件中设置密钥令牌。如果您这样做,您将能够通过访问以下 URL 来绕过维护模式:https://your-domain.test/{secret}
。
如果将 secret
键设置为 null
,则在每次激活维护模式时都会动态生成一个。
刷新间隔
如果您想指示浏览器在一段时间后刷新页面,您可以在配置文件中设置 refresh
键。
设置为 false
时,不会发送任何 Refresh
HTTP 标头。您可以使用一个整数来定义在维护模式下重新加载页面之前需要多少秒。
可见性
默认情况下,任何登录用户都将能够切换维护模式。
如果您希望将维护模式切换限制为某些用户,您可以在配置文件中设置 permissions
键。
插件将使用 Laravel 的默认授权系统来检查权限,通过 User 模型的 can
方法。它还可以很好地与 Spatie 的 Laravel Permission 包一起工作。
待办事项
- 修复当维护模式禁用时,切换按钮样式未正确更新的问题。
- 通过直接从 Livewire 组件添加维护 cookie(而不是重定向到匹配的 URL)来改进用户体验。
变更日志
请参阅 CHANGELOG 以获取有关最近更改的更多信息。
安全漏洞
请审查 我们的安全策略 了解如何报告安全漏洞。
鸣谢
许可证
MIT 许可证 (MIT)。请参阅 许可证文件 以获取更多信息。