bigfive-edition/laravel-bfe-permission

用于管理权限的五库库

1.0.46 2024-02-19 20:58 UTC

README

文档、安装和使用说明

要开始使用此包,我们将使用以下命令进行安装

在您的 composer.json 文件中添加私有仓库

"repositories": [
	{
		"type": "vcs",
		"url": "git@gitlab.bfedition.com:bigcity/bigcity-instances/bigfiveedition-laravel-permission.git"
	}
],
composer require bigfive-edition/laravel-bfe-permission

现在我们已经安装了包,我们需要发布数据库迁移和配置文件

php artisan bfe-permission:install

现在我们可以运行迁移以在我们的数据库中创建新表

php artisan migrate

假设我们正在使用默认的配置值,并且没有更改包中的 config/bfe-permission.php 中的任何内容,我们应该在我们的数据库中有五个新表

我们还可以生成默认的

php artisan bfe-permission:generate-teams
php artisan bfe-permission:generate-roles
php artisan bfe-permission:generate-abilities

HTTP 路由

它提供了管理团队、角色和权限的默认路由,请检查 Postman 收藏

{routes_prefix}/bfe-permissions/teams
{routes_prefix}/bfe-permissions/teams/{team_id}/models

{routes_prefix}/bfe-permissions/roles
{routes_prefix}/bfe-permissions/roles/{role_id}/models

{routes_prefix}/bfe-permissions/abilities
{routes_prefix}/bfe-permissions/abilities/{ability_id}/models

HTTP 路由中间件

按照以下方式添加路由中间件。注意,| 用于 OR 操作,而 & 用于 AND 操作

bfe-permission.teams:waiters|managers
bfe-permission.teams:waiters&managers

bfe-permission.roles:admin|system_admin
bfe-permission.roles:admin&system_admin

bfe-permission.abilities:read_all_users|create_one_vehicle
bfe-permission.abilities:read_all_users&create_one_vehicle
bfe-permission.abilities:read_all_users|create_one_vehicle,{resource_class},{resource_id}
bfe-permission.abilities:read_all_users&create_one_vehicle,{resource_class},{resource_id}

门和策略 [参考 https://laravel.net.cn/docs/9.x/authorization]

这里有一些预定义的能力,除了自动生成和在 bfe_permission_abilities 表中由管理员管理的能力之外

bfe-permission-belongs-teams:检查用户是否属于传递的团队

Gate::allows('bfe-permission-belongs-teams', 'admin')
Gate::forUser($user)->allows('bfe-permission-belongs-teams', 'admin | manager')
Gate::forUser($user)->allows('bfe-permission-belongs-teams', 'admin & manager')

bfe-permission-has-roles:检查用户是否有传递的角色

Gate::allows('bfe-permission-has-roles', 'admin')
Gate::forUser($user)->allows('bfe-permission-has-roles', 'admin | waiter')
Gate::forUser($user)->allows('bfe-permission-has-roles', 'admin & waiter')

bfe-permission-has-abilities:检查用户是否在传递的资源上具有传递的能力

Gate::allows('bfe-permission-has-abilities', 'create_user')
Gate::forUser($user)->allows('bfe-permission-has-abilities', 'create_user | delete_user')
Gate::forUser($user)->allows('bfe-permission-has-abilities', 'create_user & delete_user')
Gate::forUser($user)->allows('bfe-permission-has-abilities', ['create_user | delete_user', $resourceObject])
Gate::forUser($user)->allows('bfe-permission-has-abilities', ['create_user & delete_user', $resourceObject])

ability-name:检查用户是否在传递的资源上具有能力

Gate::allows('ability-name')
Gate::forUser($user)->allows('ability-name', $resourceObject)