@hecom/authority
v1.6.4
Published
Authority of Application and Meta Object
Downloads
8
Readme
Authority
这是应用和业务对象的权限模块,包括加载权限、判断权限以及变更通知等功能。
接口:
name: string
:模块名称。initGlobal: () => void
:全局初始化模块。load: (canDiff) => Promise
:重新加载权限列表,并根据canDiff
决定判断是否需要发出相应的权限更新事件。get: (level, innerAppName, actionName) => object
:根据层级结构的键,获取权限项。app
:应用相关操作。levelName: (appName) => string
:获取应用权限的首层键。get: (appName, innerAppName, actionName) => object
:获取应用模块的权限。如果不存在,则返回null
。register: (func, name, innerAppName, actionName) => string
:注册应用处理事件,返回事件Id。unregister: (funcId, name, innerAppName, actionName) => boolean
:注销应用处理事件。verify: (appName, innerAppName, actionName, data) => boolean
:验证应用模块的权限,如果传了data
,则验证数据权限。verifyData: (metaName, objectid, actionName, data) => Promise<boolean>
:通过接口形式校验是否有数据权限,当有data时,会或上verify
的结果。
obj
:元数据相关操作。结构和参数同app
部分,appName
改为metaName
即可。verifyField: (authFieldType, metaName, fieldname) => boolean
:验证字段权限,authFieldType
是权限类型,参照Foundation.AuthField
中的常量,然后指定元数据名称和字段名称。verifyDept: (deptPath, deptCode, actionItem) => boolean
:验证部门是否在部门(含下级或不含下级)列表中。deptPath
是待判断的部门路径,deptCode
是待判断的部门Code,actionItem
是权限项。showForceLogoutAlert: () => void
:显示权限更新对话框,强制登出操作,多次操作有加锁,不会弹出多个对话框。type
:权限值的判断。isAll: () => boolean
:是否是全部门。isDeptWithSub: () => boolean
:是否是部门含下级。isDeptWithoutSub: () => boolean
:是否是部门不含下级。isOnlyMe: () => boolean
:是否是仅自己。isZeroScope: () => boolean
:有数据权限但是数据范围是0。
事件类型:
- 接收环信透传传递的控制消息,用于权限更新。
- 权限更新事件:类型为
[authUpdateEvent, name, innerAppName, action]
,其中authUpdateEvent
是事件分类,name
是业务对象或应用的分组,innerAppName
是内部权限的分配,action
是具体操作。数据是{oldObj, newObj, keys, isDeleted, isCreated, isUpdated}
,其中前两个是新旧权限项,keys
是三层路径,可能小于三层,后三者表示是删除或新增或更新。