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, ] - 您还可以选择注册
Permissionsfacade,如果您更愿意使用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.'), ]); } }