stephenjude/filament-debugger

3.1.2 2024-09-25 10:49 UTC

This package is auto-updated.

Last update: 2024-09-26 18:34:17 UTC


README

Filament Debugger

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

轻松将 Telescope、Horizon 和 Laravel Pulse 添加到 Filament 管理面板。

安装

您可以通过 composer 安装此软件包

composer require stephenjude/filament-debugger

用法

use Stephenjude\FilamentDebugger\DebuggerPlugin;

public function panel(Panel $panel): Panel
{

    return $panel
        ->plugin(
            DebuggerPlugin::make()
        );
}

自定义角色/权限

您可以为具有特定角色/权限的用户授权插件

DebuggerPlugin::make()
    ->authorize(condition: fn() => auth()->user()->can('view.debuggers'));

自定义导航组

您可以自定义导航组

use Stephenjude\FilamentDebugger\DebuggerPlugin;

$panel->plugin(
    DebuggerPlugin::make()
        ->navigationGroup(condition: true, label: 'Debugger')
);

自定义导航项目

您可以自定义导航项目

use Stephenjude\FilamentDebugger\DebuggerPlugin;

$panel->plugin(
    DebuggerPlugin::make()
        ->horizonNavigation(
            condition: fn () => auth()->user()->can('view.horizon'),
            label: 'Horizon',
            icon: 'heroicon-o-globe-europe-africaglobe-europe-africa',
            url: url('horizon'),
            openInNewTab: fn () => true
        )
        ->telescopeNavigation(
            condition: fn()=> auth()->user()->can('view.telescope'),
            label: 'Telescope',
            icon: 'heroicon-o-sparkles',
            url: url('telescope'),
            openInNewTab: fn () => true
        )
        ->pulseNavigation(
            condition: fn () => auth()->user()->can('view.pulse'),
            label: 'Pulse',
            icon: 'heroicon-o-bolt',
            url: url('pulse'),
            openInNewTab: fn () => true
        )
    );

门禁 & 授权

在生产环境中使用 filament 调试器(Horizon、Telescope & Pulse)时,我们需要确保它们对授权的 filament 管理用户是可访问的。

为了实现这一点,我们需要使用 filament 默认的授权守卫以及通过覆盖 HorizonServiceProvider、TelescopeServiceProvider 和 PulseServiceProvider 中的 gate()authorization() 方法提供的应用程序定义的权限。

protected function gate()
{
    Gate::define('viewHorizon', function ($user) {
        return $user->can('view.debuggers');
    });
}

protected function authorization()
{
    Auth::setDefaultDriver(config('filament.auth.guard'));

    parent::authorization();
}

屏幕截图

测试

composer test

变更日志

请参阅 CHANGELOG 了解最近的变化。

贡献

请参阅 CONTRIBUTING 了解详细信息。

安全漏洞

请审查 我们的安全策略 了解如何报告安全漏洞。

致谢

许可

MIT 许可证 (MIT)。请参阅 许可文件 了解更多信息。