kodeine/laravel-acl

Laravel 5 内置 Auth 系统的轻量级基于角色的权限。

2.0.9 2024-08-19 00:33 UTC

This package is auto-updated.

Last update: 2024-09-19 00:42:00 UTC


README

Laravel Source Build Status License Total Downloads

Laravel ACL 为 Laravel 9.0+ 内置的 Auth 系统添加基于角色的权限。ACL 中间件保护路由和 CRUD 控制器方法。

目录

要求

  • 本包的 2.x 版本需要 PHP 7.2+ 和 Laravel 6.0+。
  • 1.x 版本需要 PHP 5.6+ 和 Laravel 5.0+。

入门

使用 composer 安装包

composer require kodeine/laravel-acl

如果您需要支持 Laravel 5.x,请确保安装 1.x 版本

composer require kodeine/laravel-acl "^1.0"
  1. 如果您正在使用 Laravel 5.4 之前的版本,请手动在您的 config/app.php 文件中注册服务提供者
'providers' => [
    'Illuminate\Foundation\Providers\ArtisanServiceProvider',
    'Illuminate\Auth\AuthServiceProvider',
    ...
    'Kodeine\Acl\AclServiceProvider',
],
  1. 发布包的配置文件,并将您自己的模型添加到 ACL 模型列表中
$ php artisan vendor:publish --provider="Kodeine\Acl\AclServiceProvider"

发布后,它会发布配置文件,您可以在其中

  • 使用自己的模型:定义自己的模型,这些模型应扩展到 Acl 模型。
  • 使用自己的守卫:定义一个用于用户恢复的除 Laravel 默认以外的守卫。
  1. 将中间件添加到您的 app/Http/Kernel.php
protected $routeMiddleware = [
    ....
    'acl' => 'Kodeine\Acl\Middleware\HasPermission',
];
  1. 将 HasRole 特性添加到您的 User 模型。
use Kodeine\Acl\Traits\HasRole;

class User extends Model implements AuthenticatableContract, CanResetPasswordContract
{
    use Authenticatable, CanResetPassword, HasRole;
}
  1. 运行迁移来生成您的角色和权限表

请注意,如果您从先前的版本升级到 6.0,用户表上 id 的默认列类型已更改。在某些数据库中,外键只能使用匹配的列类型定义。因此,您需要将用户表上的 id 列更改为 bigInteger 才能使用此包。

php artisan migrate

文档

通过 Wiki 了解更多信息。

路线图

以下是下一个版本要做的 TODO 列表。

  • 重构源代码。
  • 纠正所有问题。
  • 为最终用户权限添加缓存。

变更日志

2022 年 6 月 14 日

  • 添加了对不同守卫的支持

2019 年 9 月 14 日

  • 更新了 README 以反映新的大版本发布

2019 年 9 月 13 日

  • 添加了对 Laravel 6 的支持

2016 年 9 月 22 日*

  • 添加了单元测试

2016 年 9 月 20 日*

  • 添加了对 Laravel 5.3 的支持

2016 年 9 月 19 日

  • 为角色和权限添加了缓存支持。

2015 年 6 月 14 日

  • 为 l5.0 添加了 backward compatibility 到 lists() 方法。
  • 添加了 Blade 模板扩展

2015 年 3 月 28 日

  • 添加了 Role Scope 以获取具有特定角色的所有用户。例如 User::role('admin')>get(); 将列出具有 admin 角色的所有用户。

2015 年 3 月 7 日

  • is()can() 方法现在支持逗号作为 AND 操作符,以及管道作为 OR 操作符。或者,将操作符作为第二个参数传递。更多信息请参阅 这里
  • 您可以将多个权限绑定在一起,以便它们继承权限。更多信息请参阅 这里

贡献指南

支持PSR-2 PHP编码规范和语义化版本。

请在问题页面上报告您发现的任何问题。欢迎提交拉取请求。