# 流程详情查看权限
# 一、鉴权类型描述
鉴权类型主要分为三类:流程权限、数据权限、特殊鉴权。

# 1.1 流程权限
流程权限主要包含:流程参与人、代理人、督办人、VIP督办、消息节点、表单查询、运维监控、关注、流程实例权限。
# 1.2 数据权限
对实体有权限: 1.对标准应用有权限,表单应用没有数据权限 2.标准应用没有开启数据权限,所有的实例都能看。 3.标准应用开启了数据权限,走数据权限,能有数据权限就能打开详情。
具体设置点如下图:

# 1.3 特殊鉴权
特殊鉴权包含:分享、关联文档、报表、参照、应用自定义列表查看
# 二、鉴权扩展
1、三方鉴权类,需要客开应用中增加类,实现ThirdPermissionAppService接口
@Slf4j
@AppService(value = "Bpm自定义权限校验查看协同")
@DubboService
public class BpmPermissionAppService implements ThirdPermissionAppService {
@Override
public SingleResponse<Map<String, Boolean>> checkPermissionByUser(SingleRequest<ThirdCheckResourcePermissionDto> singleRequest) {
ThirdCheckResourcePermissionDto dto = singleRequest.getData();
Map<String, Boolean> map = new HashMap<>();
map.put(resourcePermissionDto.getResourceCode(), true);//返回true则表示有权限
return SingleResponse.from(map);
}
}
2、 穿透查看详情的链接中,增加扩展鉴权参数 在打开详情的URL上追加** authObjectId、authAppName **,BPM拿到这2个参数后,调用用户中心的鉴权接口进行鉴权。
url & authObjectId=数据id & authAppName= 应用标识(比如:docmanagement371717577236826126)
** authObjectId ** : 接受字符串类型,可进行扩展,根据应用权限需要参数进行封装。 如应用需要复杂鉴权,则可以authObjectId进行一些业务属性拼接,比如费控应用中预算和报销鉴权方式不统一,则可以authObjectId中拼接应用具体来源标识:4470227144319518573_feikong
** authAppName ** :应用code,当前实现类在什么应用下,就传递该应用code
编撰人:wensl、wxju