smorken / rbac-lite
v5.5.1
2018-07-11 19:19 UTC
Requires
- php: >=7.0
- illuminate/console: 5.5.*
- illuminate/routing: 5.5.*
- illuminate/support: 5.5.*
- smorken/ext-controller: 5.5.*
- smorken/ext-http: 5.5.*
- smorken/html: 5.5.*
- smorken/storage: 5.5.*
Requires (Dev)
- fzaninotto/faker: ~1.4
- mockery/mockery: ~1.0
- phpunit/phpunit: ~6.0
This package is auto-updated.
Last update: 2020-08-26 13:52:08 UTC
README
许可协议
本软件是开源软件,根据MIT许可证授权。
Laravel框架是开源软件,根据MIT许可证授权。
需求
- PHP 5.5+
- Composer
安装
- 将以下内容添加到您的Laravel应用 composer.json 文件中
"require": {
"smorken/rbac-lite": "~5.0"
}
执行 composer update
将服务提供者添加到
config/app.php
'providers' => [
...
\Smorken\Rbac\ServiceProvider::class,
- 发布所需的文件
$ php artisan vendor:publish --provider="Smorken\Rbac\ServiceProvider" --tag=db #view and config also available
- 运行迁移(可能需要再次执行 dump-autoload)
$ php artisan db:seed --class="RbacSeeder"
使用
app('rbac')
提供了一个 Smorken\Rbac\Handler
的实例
rbac()
是同样的缩写
检查用户角色
$rbac = app('rbac');
if ($rbac->hasRole(1)) ...
if ($rbac->hasRole('admin')) ...
if (rbac(1)) ...
if (rbac('admin')) ...
规则
规则可以作为中间件在路由中设置,或者在控制器的文档块中直接设置
中间件 (routes.php
)
Route::group(
[
'prefix' => 'admin',
'middleware' => ['auth', 'rbac'],
'namespace' => 'Admin',
'rbac' => [
'allow' => [
'actions' => ['*'],
'roles' => ['admin'],
'users' => ['user_id1', 'user_id2'],
],
'deny' => [
'roles' => ['*'],
'user' => ['*'],
],
],
],
使用配置文件(例如 config/rbac.php
)与路由中间件
Route::group(
[
'prefix' => 'admin',
'middleware' => ['auth', 'rbac'],
'namespace' => 'Admin',
'rbac' => config('rbac.admin'),
],
控制器
/**
* @rbac allow|roles:admin,manage
* @rbac deny|users:99
*/
class MyController extends Controller
/**
* @rbac allow|users:99
*/
public function getView() { } //will override controller level
public function getAdmin() { } //will use controller level