权限设置-数据权限-多角色解决!
帆软提供了两种分配模板权限的途径:
1、根据部门职位分配
2、根据角色分配
模板权限的分配课查看帮助文档:
37575
使用职位分配权限时,数据权限的配置。如果使用老师编码作为登录名,
比如人员结构表如下:
老师 老师编码 登录密码 部门 职位 角色 备注
张三 123 111 数学教务组 老师 1 老师查看自己的数据
李四 124 112 数学教务组 组长 2 组长查看组内的数据
按照职位判断数据权限:
数据集中示例如下: select 学生,老师,老师编号 from table where 1=1 ${if(GETUSERJOBTITLES()=="老师","老师编码='"+$fr_username+"'","")}
按照角色判断数据权限:
数据集中示例如下: select 学生,老师,老师编号 from table where 1=1 ${if($fr_authority=="1","老师编码='"+$fr_username+"'","")}
select 学生,老师,老师编号,老师部门 from table where 1=1 ${if($fr_authority=="2","部门='"+GETUSERDEPARTMENTS()+"'","")}
使用角色分配权限时,数据权限的配置。如果使用老师编码作为登录名,
老师 老师编码 登录密码 部门 职位 角色 备注
张三 123 111 数学教务组 老师数学组老师 老师查看自己的数据
李四 124 112 数学教务组 组长数学组组长 组长查看组内的数据
按照角色判断数据权限:
数据集中示例如下: select 学生,老师,老师编号 from table where 1=1 ${if($fr_authority=="数学组老师","老师编码='"+$fr_username+"'","")}
select 学生,老师,老师编号,老师部门 from table where 1=1 ${if($fr_authority=="数学组组长","部门='"+GETUSERDEPARTMENTS()+"'","")}
这种分配方式正常使用中没有什么问题,但当有员工是兼职几个角色等情况时数据权限就会失效。
后来想到一个解决方案如下:
select 学生,老师,老师编号,老师部门 from table where 1=1 ${switch("老师",indexofarray(fr_authority,1),"老师编码='"+$fr_username+"'"
,indexofarray(fr_authority,2),"老师编码='"+$fr_username+"'"
,indexofarray(fr_authority,3),"老师编码='"+$fr_username+"'"
,indexofarray(fr_authority,4),"老师编码='"+$fr_username+"'"
)
这种方法测试了下貌似可行,但没有实际应用。同时希望大家能够集思广益提供点更好的方法。