pemi
v1.0.6
Published
permission map
Downloads
168
Readme
用户权限值映射到16进制,用于缩小数据传输与保存时使用更小的空间
安装
npm i --save pemi
import { Permission, Module } from 'pemi'
const Sys = {
View: { id: 'Sys.V', position: 1 }
}
const Log = {
View: { id: 'Log.V', position: 1 },
Create: { id: 'Log.C', position: 2 },
Update: { id: 'Log.U', position: 3 },
Delete: { id: 'Log.D', position: 4 }
}
const permission = new Permission(
[new Module('Sys', Sys), new Module('Log', Log)]
)
权限位结构
interface Position {
id?: string
name?: string
disabled?: boolean
position: number
}
设置授权
permission.permit(['Log.V', 'Log.D'])
or
permission.permit({Sys: '0', Log: '9'})
判断是否有某一具体权限
permission.has(Log.View)
结果:
true
permission.has(Log.Create)
结果:
false
获取某一个权限块的权限具体结果
permission.get('Log')
结果:
{View: true, Create: false, Update: false, Delete: true}
将权限值转为16进制
permission.hexify()
结果:
{Sys: '0', Log: '9'}
或者获取所有有权限的id值
permission.arrayify()
结果:
['Log.V', 'Log.D']
后端可用16进制值进行保存或者去redis缓存,减少服务器内存消耗
- permission.has: (permit: string | {id: string}) 判断是否有指定某一项权限
- permission.any: (ary: string[]) 判断是否有指定任意一项权限
- permission.all: (ary: string[]) 判断是否有指定的全部一项权限
如果需要控制权限定义及权限是否正常匹配等错误信息,可以new Permission(modules, { logger: console })