chrisreedio/bastion

为Filament提供的SSO权限控制

v3.0.0-beta.9 2024-09-04 16:55 UTC

README

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

Bastion 是一个用于 Filament 和 Laravel 的包/插件,可以快速搭建应用程序的权限控制。

其主要用例是与 SSO 和 Azure Active Directory 结合使用,但也可以与任何认证提供者一起使用。

警告

此包仍在开发中,不适合生产使用。

安装

您可以通过 composer 安装此包

composer require chrisreedio/bastion

更新您的 PanelProvider 以包含插件

$panel
    ->plugins([
        // ... Other Plugins
        \ChrisReedIO\Bastion\BastionPlugin::make(),
    ])

您可以使用以下命令发布并运行迁移

php artisan vendor:publish --tag="bastion-migrations"
php artisan migrate

您可以使用以下命令发布配置文件

php artisan vendor:publish --tag="bastion-config"

这是已发布配置文件的内容

return [
    'models' => [
        'permission' => \Spatie\Permission\Models\Permission::class,
        'role' => \Spatie\Permission\Models\Role::class,
        'user' => '\App\Models\User',
    ],

    'permissions' => [
        'preload' => true,

    ],

    'default_guard' => 'web',
    'guards' => [
        // value => 'Custom Label'
        'web' => 'Web',
        'api' => 'API',
        // Your other custom guards here
    ],

    'sso' => [
        'enabled' => false,
    ],
];

您可以使用以下命令发布种子文件

php artisan vendor:publish --tag="bastion-seeders"

可选,您可以使用以下命令发布视图

php artisan vendor:publish --tag="bastion-views"

用法

可以使用插件上的 ->superAdminRole 方法定义超级管理员角色。

$panel
    ->plugins([
        // ... Other Plugins
        \ChrisReedIO\Bastion\BastionPlugin::make()
            ->superAdminRole('Developer'),
	])

测试

composer test

变更日志

有关最近更改的更多信息,请参阅 CHANGELOG

贡献

有关详细信息,请参阅 CONTRIBUTING

安全漏洞

有关如何报告安全漏洞,请参阅 我们的安全策略

鸣谢

特别感谢 @Althinect 和 @bezhanSalleh 他们的包和辛勤工作。这个项目受到了他们的启发,并基于他们的工作。没有他们,这个包是不可能的。

许可

MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件