z1haze / laravel-acl
此包已被废弃,不再维护。未建议替换包。
为 Laravel 5.3 设计的简单易用的 ACL
v0.4.0
2017-02-10 13:39 UTC
Requires
- php: >=7.0
- illuminate/support: 5.3.*|5.4.*
Requires (Dev)
- doctrine/dbal: ^2.5
- orchestra/testbench: ~3.0
- phpunit/phpunit: ~5.0
README
Laravel-ACL 是一个基于 Laravel 5.3|5.4 的访问控制包,具有显式否定功能,易于管理分层权限系统。
目录
要求
- 此包需要 PHP 7+
入门
通过 composer 需求此包。
$ composer require z1haze/laravel-acl
或
{
"require": {
"z1haze/laravel-acl": "0.4.*"
}
}
在 config/app.php 中注册服务提供者。
'providers' => [ ... z1haze\Acl\Providers\AclServiceProvider::class, ... ],
在迁移之前发布并配置配置文件。
php artisan vendor:publish --provider="z1haze\Acl\Providers\AclServiceProvider"
迁移数据库
php artisan migrate
此包设计为可扩展自您的模型,这些模型可以在配置中设置。
同时确保在您的用户模型中使新添加的
level_id字段可填充。
在 app/Http/Kernel.php 中注册中间件。
protected $routeMiddleware = [ ... 'laravel-acl' => \z1haze\Acl\Middleware\HasPermission::class ... ],
将以下 HasAcl 特性添加到您的 user 模型中。
use \z1haze\Acl\Traits\HasAcl class User extends Model implements AuthenticatableContract, CanResetPasswordContract { use Authenticatable, CanResetPassword, HasAcl; }
文档
有关更详细的信息,请阅读Wiki。
路线图
当前待办事项
- 为 blade 添加指令或找到扩展现有 Laravel 指令的方法
- 为路由资源添加中间件支持
变更日志
2017年2月6日
- 更新了
getAllPermissions以返回继承和分配的权限,即使级别/用户具有主权限也是如此。返回主权限本身意味着用户无论如何都有权访问每个权限。
2017年2月3日
- 为权限模型添加了
assignLevel - 为权限模型添加了
clearLevel - 为权限模型添加了
addUser、addUsers - 为权限模型添加了
removeUser、removeUsers
2017年2月1日
- 为用户和等级添加了
syncPermissions(array)方法 - 为用户模型添加了
getNegatedPermissions()方法 - 为比较用户和等级的等级添加了
isHigherThan()、isLowerThan()和isEqualTo()方法 - 为没有返回结果的权限/等级添加了异常处理