【BOS基础系统_权限】权限常见问题之-指定主管权限解析原创
金蝶云社区-汪伟康
汪伟康
3人赞赏了该文章 587次浏览 未经作者许可,禁止转载编辑于2021年04月12日 19:52:53

1、首先直接上指定主管权限sql查询逻辑:


-- 1)、在 指定主管权限表 中 查出存在  当前登录用户 当前组织的  所属CU 下,有在 ${ 当前登录用户的那些行政组织范围} 被指定为主管的数据。若查不到则当前登录用户此时不受指定主管权限控制

SELECT *, userOrgRange.org.id

FROM t_pm_specialdirectorperm

WHERE bizObjectType = '12A6526A'

AND userOrgRange.user.id = '256c221a-0106-1000-e000-10d7c0a813f413B7DE7F'

AND CU.id = '00000000-0000-0000-0000-000000000000CCE7AED4'


--2)、查出 ${当前登录用户的那些行政组织范围} 负责人职位上级职位职位汇报关系(FLongNumber)

SELECT

PositionHierarchy.FLongNumber

FROM

T_ORG_PositionHierarchy PositionHierarchy

INNER JOIN

T_ORG_Admin Admin

ON PositionHierarchy.FChildID = Admin.FResponPositionID  //(汇报关系的子节点职位 = 行政组织的负责人职位)

WHERE

Admin.FID = 'vqsAAAAAcpnM567U'

AND PositionHierarchy.FHierarchyID = '00000000-0000-0000-0000-000000000001396FCAD0'


--备注  职位汇报关系查询

SELECT * FROM T_ORG_POSITIONHIERARCHY where flongnumber = 'ZJTX-M001!ZJTX-M008-013'

SELECT * FROM T_ORG_POSITION  where fnumber = 'ZJTX-M001'

SELECT * FROM T_ORG_POSITION where fnumber = 'ZJTX-M008-013'


--3)、查找这些汇报关系的职位以及职位的所有下级职位的员工创建的单据 com.kingdee.eas.base.permission.app.service.SpecialDataPermissionHandler.getDirectorRule(UserInfo, SpecialDataPermInfo)

WHERE

creator.id = 'CU3uLOmXRpK3axrk4oLkAxO33n8='

OR  creator.id IN (

SELECT

DISTINCT U.FID

FROM

T_PM_USER U

INNER JOIN

T_BD_Person Person

ON Person.FID = U.FPersonID

INNER JOIN

T_ORG_PositionMember PositionMember

ON Person.FID = PositionMember.FPersonID

INNER JOIN

T_ORG_Position Position

ON Position.FID = PositionMember.FPositionID

INNER JOIN

T_ORG_PositionHierarchy AS PositionHierarchy

ON PositionMember.FPositionID = PositionHierarchy.FChildID

WHERE

(

PositionHierarchy.FLongNumber = 'ZJTX-M001!ZJTX-M008-013'

OR PositionHierarchy.FLongNumber LIKE N'ZJTX-M001!ZJTX-M008-013!%'

)

AND PositionHierarchy.FHierarchyID = '00000000-0000-0000-0000-000000000001396FCAD0'

)


2、所以得出结论,指定主管权限查询逻辑:

1)、指定主管是指把某个人指定为某个行政组织的主管(前提是这个指定的主管需要具有这个行政组织的组织范围),那这个指定的主管能看这个行政组织负责人职位上的员工 以及 负责人职位所有下级职位上的员工 创建的单据

2)、这里还有个前提条件就是主管看到的某个业务组织单据,必须有这组织的业务组织范围,以及在这个业务组织上有这个单据的查看权。


提单案例:R20200703-0358

1、bim调试环境特殊数据权限不生效的原因:

${EAS_HOME}/server/profiles/server*/config/EAS_PermissionConfiguration.xml没有配置实体

2、生产环境指定主管看不到单据:没有给该主管用户分配当前业务组织下的查看权限

3、生产环境指定主管可以看到当前组织下所有人的单据:登录的当前组织的所属管理单元 应该在  指定主管用户  的  行政组织范围 内


注:此处也附上胡美月老师之前对于特殊数据权限-主管权限的知识分享,供大家参考学习。

https://vip.kingdee.com/article/48433371357508352?share_fromuid=185592


图标赞 3
3人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!

您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!

请选择打赏金币数 *

10金币20金币30金币40金币50金币60金币
可用金币: 0