bigfive-edition / laravel-bfe-permission
用于管理权限的五库库
1.0.46
2024-02-19 20:58 UTC
Requires
- php: ^8.0|^8.1
- astrotomic/laravel-translatable: ^11.12
- illuminate/auth: ^7.0|^8.0|^9.0|^10.0
- illuminate/container: ^7.0|^8.0|^9.0|^10.0
- illuminate/contracts: ^7.0|^8.0|^9.0|^10.0
- illuminate/database: ^7.0|^8.0|^9.0|^10.0
- illuminate/support: ^7.0|^8.0|^9.0|^10.0
- prettus/l5-repository: ^2.9
Requires (Dev)
- orchestra/testbench: ^5.0|^6.0|^7.0|^8.0
- phpunit/phpunit: ^9.4
- predis/predis: ^1.1
- dev-main
- 1.0.46
- 1.0.45
- 1.0.44
- 1.0.43
- 1.0.42
- 1.0.41
- 1.0.40
- 1.0.39
- 1.0.38
- 1.0.37
- 1.0.36
- 1.0.35
- 1.0.34
- 1.0.33
- 1.0.32
- 1.0.31
- 1.0.30
- 1.0.29
- 1.0.28
- 1.0.27
- 1.0.26
- 1.0.25
- 1.0.24
- 1.0.23
- 1.0.22
- 1.0.21
- 1.0.20
- 1.0.19
- 1.0.18
- 1.0.17
- 1.0.16
- 1.0.15
- 1.0.14
- 1.0.13
- 1.0.12
- 1.0.11
- 1.0.10
- 1.0.9
- 1.0.8
- 1.0.7
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- dev-repos
This package is not auto-updated.
Last update: 2024-10-01 00:02:57 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)