zennit/abac
最新稳定版本:2.0.3
Composer 安装命令:
composer require zennit/abac
包简介
Attribute-Based Access Control (ABAC) for Laravel
README 文档
README
A flexible ABAC implementation for Laravel 13+ with a developer-friendly permission management API.
Installation
composer require zennit/abac
Publish config and run migrations:
php artisan vendor:publish --provider="zennit\ABAC\Providers\AbacServiceProvider"
php artisan migrate
Quick Start
- Add the middleware to protected routes:
Route::middleware(['web', 'abac'])->group(function () { Route::get('/posts/{post}', fn (Post $post) => $post); });
- Add a permission:
use zennit\ABAC\Facades\Abac; Abac::addPermission('read', App\Models\Post::class, [ 'role' => 'editor', 'resource.owner_id' => 123, ]);
- Request is allowed when actor/resource attributes satisfy the grant constraints.
Artisan Commands
The package registers utility commands for consumer setup:
php artisan abac:publish php artisan abac:publish-config php artisan abac:publish-env php artisan abac:scaffold --from-routes
abac:publishruns config + env publishing in one command.abac:publish-configpublishesconfig/abac.php.abac:publish-envappends missing ABAC environment variables to a chosen env file.abac:scaffold --from-routesgenerates a starter policy JSON scaffold fromabac.middleware.resource_patterns.
Seeding Permissions in Your App
Seed permissions from your consuming application's seeders instead of package-provided seeders:
<?php namespace Database\Seeders; use Illuminate\Database\Seeder; use zennit\ABAC\Facades\Abac; class AbacPermissionSeeder extends Seeder { public function run(): void { Abac::addPermission('read', App\Models\Post::class, [ 'role' => 'editor', 'resource.owner_id' => '123', ]); Abac::addPermission('update', App\Models\Post::class, [ 'actor.role' => 'admin', ]); } }
Then call your seeder from DatabaseSeeder as part of your normal app bootstrap.
Documentation
Full docs: https://zennit-dev.github.io/abac/
Local docs index: docs/index.md
License
MIT License — see LICENSE.md
统计信息
- 总下载量: 19
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 5
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-03-15