Downloads
Stars
Version
vendor:publish --tag=permission-migrations --force : 生成数据库表文件
vendor:publish --tag=permission-config --force : 生成配置文件
make:permission : 用于生成权限文件, 默认文件内容为json
格式
endpoints
有多个时, 用于指定endopint
名endpoints
中定义的scopes
进行过滤筛选yaml
格式permission:migrate : 写入权限操
permission:rollback : 回滚权限操作
permission:merge : 将本地多个权限文件合并成单个文件 (当数据库表permission_migrations
为空时, 可从permissions
表中读取当前权限,并生成当前数据库中对应权限文件)
server : 当前服务名
endopoints : 权限提交节点
例1: member-service 作为用户端, staff-service 作为服务端
/**
* member-service
* config/permission.php
*/
<?php
return [
'server' => 'member'
'endpoints' => [
'staff' => [
'url' => 'http://api.test.com/staff',
'scopes' => 'admin',
]
];
];
// 以上配置亦可简写成如下形式
return [
'server' => 'member'
'endpoints' => 'http://api.test.com/staff',
];
/**
* staff-service
* config/permission.php
*/
<?php
return [
'server' => 'staff'
'local' => [
'name' => 'admin', 'scopes' => 'admin'
],
];
例2: member-service 作为用户端, staff-service 同时作为用户端和服务端, management 用作服务端
/**
* member-service
* config/permission.php
*/
<?php
return [
'server' => 'member'
'endpoints' => [
'staff' => [
'url' => 'http://api.test.com/staff',
'scopes' => 'admin',
],
'management' => [
'url' => 'http://api.test.com/management',
'scopes' => 'management',
],
];
];
/**
* staff-service
* config/permission.php
*/
<?php
return [
'server' => 'staff'
'local' => [
'name' => 'admin', 'scopes' => 'admin'
],
'endpoints' => [
'management' => [
'url' => 'http://api.test.com/management',
'scopes' => 'management',
],
]
];
json 格式说明
{
"@user.create": { // @ 表示修改
"type": "api",
"scopes<": [ // 表示向scopes追加
"admin",
],
"scopes>": [ // 表示从scopes移除
"admin.xxx",
],
"content": {
"url": "\/user\/create",
"method": "POST"
},
"translations.cn": {
"content": "翻译",
"description": "描述",
}
},
"user.list": { // 表示添加
"type": "api",
"scopes": [],
"content": {
"url": "\/user\/list",
"method": "GET"
},
"translations": {
"cn": {
"content": "翻译",
"description": "描述"
}
}
},
"user.detail": null // 表示删除
}
yaml 格式说明
'@user.create':
type: api
scopes:
- admin
content:
url: user/create
method: POST
translations.cn:
content: 翻译
description: 描述
user.list:
type: api
scopes:
content:
url: user/list
method: GET
translations:
cn:
content: 翻译
description: 描述
user.detail: