帆软提供了两种分配模板权限的途径:
1、根据部门职位分配
2、根据角色分配
模板权限的分配课查看帮助文档:
使用职位分配权限时,数据权限的配置。如果使用老师编码作为登录名,
比如人员结构表如下:
老师 | 老师编码 | 登录密码 | 部门 | 职位 | 角色 | 备注 | | 张三 | 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+"'"
)
这种方法测试了下貌似可行,但没有实际应用。同时希望大家能够集思广益提供点更好的方法。
|