joshbrw / laravel-permission-manager
Laravel 权限管理器
v0.1.1
2017-09-08 15:28 UTC
Requires
- php: >=7.0
- laravel/framework: >=5.4
Requires (Dev)
- phpunit/phpunit: ^6.3
This package is auto-updated.
Last update: 2024-08-29 01:14:19 UTC
README
此包提供了一种简单的方式来注册权限,通过分组组织权限,然后检索所有权限。然后可以将这些权限分配给用户/角色实体,并用于访问控制逻辑。
安装
- 使用
composer require joshbrw/laravel-permission-manager
安装此包 - 如果您使用的是 Laravel 5.5,则这已经足够了,包将自动加载其自身的 Providers 和 Facades。如果您使用的是 Laravel 5.4,请继续阅读。
- 然后在
config/app.php
中注册服务提供者,以确保容器绑定等被加载'providers' => [ ... Joshbrw\LaravelPermissions\LaravelPermissionManagerServiceProvider::class, ]
- 您还可以选择注册
Permissions
facade,如果您更愿意使用Permission::registerPermissions()
而不是直接使用PermissionManager
'aliases' => [ ... 'Permissions' => Joshbrw\LaravelPermissions\Facades\Permissions::class, ]
- 您现在已安装完成!
注册权限
权限通常应在服务提供者的 boot()
方法中注册 - 这确保了该包首先使用其自身的 register()
方法来注册自己。
使用 Facade
注册权限最简单的方法是使用 Permissions
facade。以下示例在 User
组内注册了 user.list
和 user.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.'), ]); } }