目录
首先拉取好casbin的包
快速开始
首先拉取好casbin的包
composer require casbin/laravel-authz
这个是使用casbin官方的包来进行的一个编写,拉好包之后默认是注册好的,也可以自己去config/app.php里,自行注册。
'providers' => [ ? ? /* ? ? ?* Package Service Providers... ? ? ?*/ ? ? Lauthz\LauthzServiceProvider::class, ]
Enforcer门面也是??auto-discovered? 自动加载好的,想要自动加载好的话也是在config/app.php中进行添加
'aliases' => [ ? ? // ... ? ? 'Enforcer' => Lauthz\Facades\Enforcer::class, ]
?之后开始进行发布?
php artisan vendor:publish
?这个操作会创建一个新的模型配置文件 config/lauthz-rbac-model.conf和 config/lauthz.php文件,之后需要执行迁移的话,可以运行migrate命令:
php artisan migrate
?这个会创建一个新的名为rules的表? 表结构如下图所示
快速开始
创建一个控制器之后? 首先引用一下Enforcer (一个简单的RBAC就这样生成了)
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Lauthz\Facades\Enforcer;
class CasbinController extends Controller
{
public function testFrame()
{
//为用户添加权限
Enforcer::addPermissionForUser('sucre','article','write');
//为用户添加角色
Enforcer :: addRoleForUser ( 'eve' , 'writer' );
//为规则添加权限
Enforcer :: addPolicy ( 'writer' , 'articles' , 'edit' );
}
}
?后续的话可以考虑使用相关的方法来进行查找用户是否存在等等等等....
// 查看用户是否含有权限
if (Enforcer::enforce("eve", "articles", "edit")) {
// 允许该用户来进行编辑文章
} else {
// 此处写拒绝请求 并给返回错误显示
}
RBAC到此 ABAC待续...?
|