sprobe / acl

该软件包最新版本(1.0.3)没有提供许可信息。

为Laravel设计的简单ACL软件包

1.0.3 2023-05-10 03:21 UTC

This package is auto-updated.

Last update: 2024-09-10 06:20:01 UTC


README

使用组和权限实现的简单Laravel ACL实现。

安装

您可以通过运行以下命令安装此软件包

composer require sprobe/acl

运行composer install后,将以下行添加到您的 config/app.php 文件中

'providers' => [
    ...
    ...

    // load the acl service provider
    Sprobe\Acl\SprobeAclServiceProvider::class,
]

如何使用

首先运行迁移以创建所需的数据库表

php artisan migrate

通过 artisan 命令创建一个组

php artisan acl:make-group Administrator

然后通过 artisan 命令创建一个资源

php artisan acl:make-resource users

请注意,资源应与您的路由匹配

Route::post('users', 'UserController@create');

然后通过 artisan 命令创建读取和写入权限

php artisan acl:make-permission Write
php artisan acl:make-permission Read

将以下 Permissible 特性添加到您的用户模型 app\Models\User.php

...
use Sprobe\Acl\Traits\Permissible;

class User extends Authenticatable implements MustVerifyEmail
{
    use HasApiTokens, Notifiable, Permissible;
...

您可以在控制器/服务/存储库中将用户分配到组

$user = App\Models\User::find(1);
$user->assignToGroup('Administrator');

然后您可以给该组分配对该资源的权限

$group = Sprobe\Acl\Models\Group::findByName('Administrator');
$group->givePermissionToResource('users', true); // set second param to true if you want to give Write permission, false if read-only

您可以在控制器上声明ACL以激活它,例如 UserController.php

public function __construct()
{
    parent::__construct();

    // enable api middleware
    $this->middleware('acl');
}

或直接在您的路由上

Route::get('users', 'UserController@index')->middleware('acl');