使用 Filament Shield 在 Filament 中添加角色和权限

708 阅读1分钟

Laravel Permission 是 Laravel 中管理用户角色和权限最强大的包之一。 Spatie 的 Laravel Permission 使实现 RBAC(基于角色的访问控制)比以往任何时候都更容易

Laravel Permission 是一个功能强大的包,用于在 Laravel 应用程序中定义角色、分配权限和管理用户访问权限。它具有易于使用的语法和强大的功能。

在 Filament 中,有一个插件可以使用 spatie / Laravel-permission 来管理 Filament 面板中资源、页面和小部件的权限。

Filament Shield由全栈专家开发人员 Bezhan Salleh 创建。使用 Filament Shield,您可以轻松管理支持最新 spatie / Laravel 权限的角色和权限。

如果我们想为我们的项目安装 Filament Shield,我们需要做的第一件事是运行以下命令:

composer require bezhansalleh/filament-shield

现在我们需要添加 Spatie\Permission\Traits\HasRoles 我们的用户模型的特征。

use Spatie\Permission\Traits\HasRoles;  
  
class User extends Authenticatable  
{  
use HasRoles;

然后我们发布config文件,然后使用以下命令设置我们的配置:

php artisan vendor:publish --tag=filament-shield-config

app\Providers\Filament\AdminPanelProvider.php 使用此语法的文件,

->plugins([  
\BezhanSalleh\FilamentShield\FilamentShieldPlugin::make()  
])

最后,要将灯丝屏蔽安装到我们的项目中,我们执行以下命令:

php artisan shield:install

现在,我们有了带有角色表的新角色菜单,默认角色是超级管理员,

.

当我们创建角色时,我们将看到角色创建表单,其中包含我们创建的所有模型和资源,以及所有角色的权限以及他们可以执行和不能执行的操作。