berthott / laravel-api-permissions
Laravel API端点权限助手
3.0.4
2023-10-18 06:58 UTC
Requires (Dev)
- berthott/laravel-api-cache: ^3.0
- berthott/laravel-crudable: ^3.0
- berthott/laravel-targetable: ^3.0
- doctrine/dbal: ^3.3
- orchestra/testbench: ^8.0
- phpunit/phpunit: ^10.0
README
这是一个用于Laravel的API权限助手。使用单个中间件保护所有路由。
安装
$ composer require berthott/laravel-api-permissions
使用
- 注意:此包假设您以Laravel的方式命名所有路由:
models.action
。 - 将
permissions
中间件添加到您想要保护的路由中。 - 通过编写自己的Seeder来填充权限表
php artisan make:seeder PermissionTableSeeder
- 使用
berthott\Permissions\Helpers\PermissionsHelper
来实际填充权限PermissionsHelper::resetTables()
将截断所有权限相关表。PermissionsHelper::buildRoutePermissions()
将构建权限表。您可以传递一个数组来映射路由到权限。例如。[ '*.destroy' => [ '*.destroy', '*.destroy_many' ], ]
PermissionsHelper::buildUiPermissions()
将添加仅由前端处理的UI权限。
- 如果
migrate
选项为true
,则包将为您迁移五个表:roles
、role_user
、permissions
、permissionables
和permission_routes
。 - 如果
migrate
选项为false
并且您想编写自己的迁移,可以运行默认迁移来查看
$ php artisan vendor:publish --provider="berthott\Permissions\ApiPermissionsServiceProvider" --tag="migrations"
- 您可以通过添加
HasPermissions
特质来将permissions
添加到User
模型中。 - 您可以通过添加
HasRoles
特质来将roles
添加到您的User
模型中。 - 您可以使用上述选项之一或全部。
- 您可以通过将它们添加到
ignoreActions
配置中或添加IgnorePermissionRoutes
特质来忽略特定路由动作。
选项
要更改默认选项,请使用
$ php artisan vendor:publish --provider="berthott\Permissions\ApiPermissionsServiceProvider" --tag="config"
- 继承自 laravel-targetable
namespace
:应监视以配置特质的字符串或包含一个或多个命名空间的数组。默认为App\Models
。namespace_mode
:定义命名空间的搜索模式。ClassFinder::STANDARD_MODE
将仅查找完全匹配的命名空间,ClassFinder::RECURSIVE_MODE
将查找所有子命名空间。默认为ClassFinder::RECURSIVE_MODE
。prefix
:定义路由前缀。默认为api
。
- 通用包配置
middleware
:要应用到所有生成路由的所有中间件的数组。默认为[]
。ignoreActions
:定义默认情况下应忽略的操作数组。默认为[]
。migrate
:定义是否迁移标准表。默认为true
。
兼容性
已在Laravel 10.x上进行测试。
许可证
见 许可证文件。版权 © 2023 Jan Bladt。