laravel-permission 是围绕 Spatie Laravel Permission 的技能资料,主要用于在 Laravel 应用中实现 RBAC、基于角色的访问控制与用户授权。
用途:提供角色(Role,权限分组)、权限(Permission,单一能力)、中间件(路由保护)、Blade 指令(界面授权)、Teams(多租户作用域)、通配符(层级权限)、超级管理员(绕过检查)、事件(审计日志,v6.15.0+)、查询作用域(按角色/权限筛选用户)、API 支持(Sanctum/Passport 集成)与策略(基于资源的授权)等主题的实现指导。
主要能力:资料说明覆盖基础 RBAC、中间件、Blade 指令、多守卫(web/api)、Teams 多租户、通配符权限、超级管理员、缓存管理、直接权限与角色权限、Artisan 命令、UUID 支持、自定义模型、事件、查询作用域、策略集成、API/Sanctum、测试与性能等功能。
使用方式:资料要求在任何实现前并行启动三个智能体,分别检查现有认证模式、核验 Spatie Permission 文档、检查 Laravel 授权模式;实现后运行校验智能体。关键规则包括:在 DatabaseSeeder 中播种角色/权限;变更后执行 php artisan permission:cache-reset 重置缓存;使用 kebab-case 命名(如 edit-articles);不要在控制器中硬编码角色检查,应使用中间件;多租户应用尽早设置团队上下文;为 API 指定守卫(如 permission:edit,api);在测试中清理缓存(setUp()/beforeEach())。
快速参考包括:$user->assignRole('admin')、$user->can('edit articles')、Route::middleware(['role:admin'])、Route::middleware(['auth:sanctum', 'permission:edit,api'])、@role 与 @can 指令、User::role() 与 User::permission() 查询作用域、setPermissionsTeamId() 设置团队、$role->givePermissionTo('articles.*') 通配符、Gate::before() 实现超级管理员,以及测试中 forgetCachedPermissions()。
适用场景:Laravel 应用中的角色与权限管理、路由与界面授权、多租户权限隔离、API 权限校验、审计与策略集成、权限缓存与测试等。
限制:资料为技能说明文档,不提供收费、价格、平台或效果信息;上述未提及的事实暂未提供。