distilleries / permission-util
提供一套系统来检测用户是否有权限。提供中间件以403限制访问。
v1.11.0
2019-09-10 09:55 UTC
Requires
- php: >=7.1.3
- illuminate/http: 5.8.*|^6.0
- illuminate/session: 5.8.*|^6.0
- illuminate/support: 5.8.*|^6.0
Requires (Dev)
- mockery/mockery: ~1.0|^1.2.3
- orchestra/database: 3.8.*|^4.0
- orchestra/testbench: 3.8.*|^4.0
- orchestra/testbench-browser-kit: 3.8.*|^4.0
- phpunit/phpunit: ~7.0|^8.3
README
Laravel 5 权限工具
提供一套系统来检测用户是否有权限。提供中间件以403限制访问。
目录
##安装
在你的 composer.json 文件中添加
"require": { "distilleries/permission-util": "1.*", }
运行 composer update
。
将服务提供者添加到 config/app.php
'providers' => [ // ... 'Distilleries\PermissionUtil\PermissionUtilServiceProvider', ]
以及 Facade(也在 config/app.php
中)
'aliases' => [ // ... 'PermissionUtil' => 'Distilleries\PermissionUtil\Facades\PermissionUtil', ]
导出配置
php artisan vendor:publish --provider="Distilleries\PermissionUtil\PermissionUtilProvider"
###基本用法 要检查权限,我使用了你应用的 auth
。在你的模型中使用 Auth 实现 Distilleries\PermissionUtil\Contracts\PermissionUtilContract
接口,添加 hasAccess
方法来定义用户是否有权限。参数中的键是一个字符串动作,例如 UserController@getEdit
。
public function hasAccess($key) { return true; }
如果用户已连接且你的模型没有这个方法,类将返回 true。如果用户未连接,权限工具返回 false。要禁用对连接用户的限制,只需进入配置文件并将 auth_restricted
设置为 false。
你可以使用 Facade 来检测用户是否可以访问
##中间件 该包提供了一种中间件,可以自动检测用户是否可以访问控制器的方法。要启用它,只需在你的 app/Http/Kernel
中添加
protected $routeMiddleware = [ //... 'permission' => 'Distilleries\PermissionUtil\Http\Middleware\CheckAccessPermission', ];
并在你的控制器或路由中添加中间件
public function __construct() { $this->middleware('permission'); }
如果用户可以访问触发 403 的操作