matthc / privileges
此包已被废弃,不再维护。未建议替代包。
laravel 的小型角色权限集成
0.2.0
2016-05-14 14:08 UTC
Requires
- php: >=5.5.9
Requires (Dev)
- illuminate/support: 5.2.*
This package is not auto-updated.
Last update: 2022-02-01 12:54:40 UTC
README
#Privileges
这是一个为 laravel 项目的小型角色权限集成。我知道 Entrust 存在,但我想亲自试一试。
##安装 将包下载到 vendor 文件夹
composer require matthc/privileges
将服务提供者添加到 config/app.php
... MatthC\Privileges\PrivilegeServiceProvider::class, ...
发布文件
$ php artisan vendor:publish
运行迁移
$ php artisan migrate
调整 config/privileges.php 中的设置,并运行以下命令以添加所需的角色和权限。
$ php artisan privileges:db:seed
如果您想添加具有特定角色的用户,请运行以下命令
$ php artisan privileges:db:users
将特质添加到 usermodel
use MatthC\Privileges\Traits\PrivilegeUserTrait; class User extends Authenticatable { use PrivilegeUserTrait; ... }
##使用
###用户有角色 检查用户是否具有特定角色
//one role $user->hasRole('admin'); //returns true/false //multiple roles $user->hasRole(['admin', 'author']); //returns true if the user has one of these roles //user must have all roles $user->hasRole(['admin', 'author'], true);
###用户有权限 检查用户是否具有特定权限
//one permission $user->can('create_post'); //multiple permissions $user->can(['create_post', 'update_post']); //all true $user->can(['create_post', 'update_post'], true);
##中间件 您还可以使用预定义的中间件。将以下行添加到 app/Http/kernel.php 中的路由中间件数组
protected $routeMiddleware = [ ... 'role' => \MatthC\Privileges\Middleware\PrivilegeRoleMiddleware::class, 'permission' => \MatthC\Privileges\Middleware\PrivilegePermissionMiddleware::class, ];
示例用法
Route::group(['middleware' => ['role:admin']], function() { //add routes });