1.6.4 • Published 1 year ago
@hecom/authority v1.6.4
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是三层路径,可能小于三层,后三者表示是删除或新增或更新。