System right management subset of tFrame
npm install tframe-rights
let Tright = require('preRight);
// 用键值对象初始化实例
let seedObj = {
add: '新增',
edit: '编辑',
del: '删除'
};
let currRight1 = new Tright(seedObj);
// 用tframe-enum代替键值对象初始化实例
let tEnum = require('tframe-enum');
let seedEnum = tEnum.sys.seed.crud;
let currRight2 = new Tright(seedEnum);
`
- #### 获取实例权限定义的枚举
`
console.log(currRight1.getDefine());
// {
add: 1,
edit: 2,
del: 4
}
`
- #### 获取完整的实例键集合
`
console.log(currRight1.getKeys());
// ['add', 'edit', 'del']
`
- ### 获取完整的实例标签集合
`
console.log(currRight1.getTitles());
// ['新增', '编辑', '删除']
`
- ### 获取实例的默认初始值(所有权限均为否)
`
console.log(currRight1.getDefaultVal());
// [0, 0, 0]
`
// 通过传入的用户权限值,生成值序列
// @val:权限值
`
let val = 6;
console.log(currRight1.getValList(val));
// [0, 1, 1]
`
// 通过传入的用户权限值,生成有效 key 或 title 序列
// @val:权限值
// @asTitle:获取 key 还是 title,默认为 flase(输出key)
`
let val = 6;
console.log(currRight1.getKeyList(val));
// ['edit', 'del']
console.log(currRight1.getKeyList(val, true));
// ['编辑', '删除']
`
// 根据传入的权限项(s),返回用户授权值
// @rtItem:要设置的用户权限项(限于类初始化时提供的项列表)(不定参数项,或数组)
`
console.log(createValue('add', 'del'));
// 返回:5
console.log(createValue(['add', 'del']));
// 返回:5
let val = {
add: Foo,
del: Bar
};
console.log(createValue(val));
// 返回:5
`
- #### 初始化
`
/* 分类初始化权限实例
** @bizArr:业务授权种子,要求如下:
1、必须为普通键值对象(不包括 Map\WeakMap)
参数示例: [{
code: foo,
seedCode: 'foo1,foo2,foo3',
seedTitle: 'foo标题1,foo标题2,foo标题3'
}, {
code: foo,
seedCode: 'foo1,foo2,foo3',
seedTitle: 'foo标题1,foo标题2,foo标题3'
}]
输出示例: {
// 源于 tframe-enum.sys.seed.crud 的权限集合
crud: {
handler: foo // 代表通用的CRUD权限集合
note: {
read: 查看
foo...
}
},
// 源于 tframe-enum.sys.seed.extend 的权限集合
extend: {
handler: bar // 代表通用的扩展功能权限集合
note: {
import: 导入
foo...
}
},
// 源于传入参数所定义的业务权限集合
biz: {
bizFoo: {
handler: bizFooHandler // 代表 bizFoo 业务所具备的权限集合
note: {
ex1: 发出,
ex2: 收到
}
},
bizBar: {
handler: bizBarHandler // 代表 bizBar 业务所具备的权限集合
note: {
ex1: 入库,
ex2: 验收
}
}
}
}
*/
``