zakariajawas/permissions-generator

根据您的模型生成spatie权限包的默认权限

0.0.5 2023-08-23 13:56 UTC

This package is auto-updated.

Last update: 2024-09-23 16:21:43 UTC


README

Licence Stars

使用一个Artisan命令一次性为所有模型生成spatie权限包的基本权限。

此包包含一个GeneratePermissionsProvider,您可以在您的包中使用它来轻松注册配置文件和Artisan命令。

功能介绍

如果您使用spatie权限包,您需要手动为角色创建权限,所有模型都常见的权限是访问(列表)、创建、编辑和删除

此包将使用一个Artisan命令创建所有模型的所有基本权限。

php artisan permissions:generate

例如,如果您有以下模型[Category, Product],在运行生成命令后,以下行将插入到您的权限表中

list category
create category
edit category
delete category

list product
create product
edit product
delete product

注意:您可以在配置文件中修改一些值,请参阅下面的与配置文件一起工作部分。

入门

安装

composer require zakariajawas/permissions-generator

您应该通过以下命令发布config/permissionsgenerator.php配置文件:

php artisan vendor:publish --provider="ZakariaJawas\PermissionsGenerator\GeneratePermissionsProvider"

与配置文件一起工作

在config/permissionsgenerator.php文件中,您可以修改以下值。

  • 修改此值以添加、更新或删除权限。

这些是基本权限。

'permissions' => ['list', 'create', 'edit', 'delete']

例如,要添加access权限并将edit更改为update,您可以这样做。

'permissions' => ['access', 'list', 'create', 'update', 'delete']
  • 默认情况下,包将为所有项目模型生成权限,您可能想排除特定的一个或多个模型,因此您可以这样做。
'exclude' => [
App\Models\Session::class, //no permissions generated for Session model
],
  • 如果您有与模型无关的静态权限,例如导出到PDF或访问所有数据或可能没有模型的页面,您可以在$staticPermissions数组中添加这些权限
'staticPermissions' => ['export pdf', 'access dashboard']

注意:

  1. 您必须添加完整的模型类路径。
  2. 您不需要排除其他包的模型,此包不会为它们创建权限。
  • 默认权限名称是permission + 模型名称,如果您想添加前缀,可以在此指定。
'prefix' => 'can',

结果将是can create product而不是create product

许可证

MIT许可证(MIT)。请参阅许可证文件以获取更多信息。

作者

Zakaria Jawas @zakariajawas

获取帮助

如果您发现问题,您可以在GitHub页面上打开一个问题,或者您可以通过jawas.zakaria@gmail.com与我联系

通过在Twitter上推文来支持此库

如果您喜欢它,请使此库更好 👍