joshbrw/laravel-permission-manager

v0.1.1 2017-09-08 15:28 UTC

This package is auto-updated.

Last update: 2024-08-29 01:14:19 UTC


README

此包提供了一种简单的方式来注册权限,通过分组组织权限,然后检索所有权限。然后可以将这些权限分配给用户/角色实体,并用于访问控制逻辑。

安装

  1. 使用 composer require joshbrw/laravel-permission-manager 安装此包
  2. 如果您使用的是 Laravel 5.5,则这已经足够了,包将自动加载其自身的 Providers 和 Facades。如果您使用的是 Laravel 5.4,请继续阅读。
  3. 然后在 config/app.php 中注册服务提供者,以确保容器绑定等被加载
    'providers' => [
        ...
        Joshbrw\LaravelPermissions\LaravelPermissionManagerServiceProvider::class,
    ]
    
  4. 您还可以选择注册 Permissions facade,如果您更愿意使用 Permission::registerPermissions() 而不是直接使用 PermissionManager
    'aliases' => [
        ...
        'Permissions' => Joshbrw\LaravelPermissions\Facades\Permissions::class,
    ]
    
  5. 您现在已安装完成!

注册权限

权限通常应在服务提供者的 boot() 方法中注册 - 这确保了该包首先使用其自身的 register() 方法来注册自己。

使用 Facade

注册权限最简单的方法是使用 Permissions facade。以下示例在 User 组内注册了 user.listuser.create 权限

use Permissions;
use Joshbrw\LaravelPermissions\Permission;

class MyProvider extends ServiceProvider {
    public function boot()
    {
        Permissions::register('User', [
            new Permission('user.list', 'List Users', 'This allows a User to list other Users.'),
            new Permission('user.create', 'Create Users', 'This allows a User to create another User.'),
        ]);
    }
}

使用 Trait

如果您不喜欢 Facade,还可以使用 RegistersPermissions trait,例如

use Joshbrw\LaravelPermissions\Traits\RegistersPermissions;
use Joshbrw\LaravelPermissions\Permission;

class MyProvider extends ServiceProvider {
    use RegistersPermissions;
    
    public function boot()
    {
        $this->registerPermissions('User', [
            new Permission('user.list', 'List Users', 'This allows a User to list other Users.'),
            new Permission('user.create', 'Create Users', 'This allows a User to create another User.'),
        ]);
    }
}