z1haze/laravel-acl

此包已被废弃,不再维护。未建议替换包。

为 Laravel 5.3 设计的简单易用的 ACL

v0.4.0 2017-02-10 13:39 UTC

This package is not auto-updated.

Last update: 2018-07-30 23:37:12 UTC


README

Build Status Total Downloads Code Quality Coverage Latest Stable Version Latest Unstable Version License

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
  • 为权限模型添加了 addUseraddUsers
  • 为权限模型添加了 removeUserremoveUsers

2017年2月1日

  • 为用户和等级添加了 syncPermissions(array) 方法
  • 为用户模型添加了 getNegatedPermissions() 方法
  • 为比较用户和等级的等级添加了 isHigherThan()isLowerThan()isEqualTo() 方法
  • 为没有返回结果的权限/等级添加了异常处理