今天学习权限设置,目前总结有以下的方式
权限设置:1.角色管理 ->控制画面中菜单的显示
2.用户管理->为不同的用户设置不同的角色
3.按钮控制权限
4.表单字段权限
5.数据列权限
6.数据行权限
在网上寻找一个案例,按照这个步骤制作一个日志系统,方便学习权限设置。
请参照以下方案。
一、业务背景
某公司要实现一个日志系统,用来了解员工的工作量饱和情况。
二、需求
1、角色分为:员工、经理两种。
2、员工每天在日志系统中填报工作总结,然后经理进行点评。
3、表单内容包含:姓名、日期、工作总结、个人笔记、日志点评。
三、业务权限描述
1、 员工可以进行日志填报、查看操作。(按钮控件权限)
2、 经理可以进行日志点评、查看操作。(按钮控件权限)
3、 个人笔记内容只对填报本人可见,经理不能看到个人笔记内容。(表单字段权限)
4、 经理只可以编辑日志点评字段。(表单字段权限)
5、 员工查询出的数据列表列为
姓名、日期、个人笔记、日志点评(数据列权限)
6、 经理查询出的数据列表列为
姓名、日期、日志点评(数据列权限)
7、 员工只可以看到自己填报的日志记录。(数据行权限)
开发过程
s1.创建表单:
s2.页面属性
s3.
s3.同步数据库
s4.代码生成
这样,代码就生成了,但是我发现service中出现了以下错误,后来我查看了发现生成代码的模板中是这样的,
解决方案:目前我是将entity 转换成TBussDailyLogEntity,以后有问题再做修改,如果没有问题,也可以将模板文件中的该方法做相应的修改或者删除操作。
s5.新建两个角色:员工、经理;新建三个用户:员工小A,员工小B,王经理。并分配对应的角色。
以下是创建的角色
s8.配置菜单
s10.使用王吉利(经理)的用户登录,如下界面显示。
(小插曲)为了证明画面样式可以修改,日志追加画面修改为如下样式。
下面是重要的部分,权限配置
1.员工可与日志填报,查看操作。(按钮权限)
配置日志点评按钮不可见,并对员工角色起作用。
A.在代码中,日志点评按钮增加operationCode=update
B.在菜单管理中,为工作日志菜单加控件权限:日志点评隐藏
为工作日志追加【日志点评隐藏】权限
然后在角色管理中追加页面控件权限(注:刚开始页面控制权限中没有该内容,单击该菜单列表后可以正常表示了)
这样员工画面就没有日志点评这个按钮了,
下面查看经理能查看的按钮,可以查看到日志点评这个按钮。
2、 经理可以进行日志点评、查看操作。(按钮控件权限)
配置日志填报按钮不可见,并对经理角色起作用。
过程同上一项。
3、 员工查询出的数据列表列为
姓名、日期、个人笔记、日志点评
经理查询出的数据列表列为
姓名、日期、日志点评(数据列权限)
配置个人笔记列隐藏,并对经理角色起作用。
A、 在员工日志下新增控件权限。
以下是经理的查看内容
以下是员工的查看内容
4、 员工只可以看到自己填报的日志记录。(数据行权限)
配置datagrid操作createBy =#{ sys_user_code}
A、新增访问类型的菜单。注意:一定要是访问类型。路径为列表查询action.
B、 对新加的访问类型菜单增加数据权限。
C、对员工角色使用此数据权限。 一定要为员工设置数据权限,不然不能用啊,一开始我就是没有设置,都能查询出来,后来设置后,清理缓存就可以如下画面显示了。
员工只能查看自己的工作日志。
终于可以了,
以下是测试结果
下面是经理的显示内容
5、 个人笔记内容只对填报员工可见,经理不能看到个人笔记内容。(表单字段权限)
配置个人笔记表单字段不可见,并对经理角色起作用。
上面对一览的数据列进行了设置,使经理看不到个人笔记列,但是修改画面还是存在的,以下是修改之前画面的显示。
A、 在新增页面,为点评行加上t:authFilter标记
B、 新增访问类型菜单
页面设置权限追加后,经理日志点评无法看到员工的个人笔记
D、 对员工角色使用该权限控制。
好了,下面是测试部分了,
经理可以看到的是
完成了,以上是对权限的全部过程,因为保存的原因,部分图片无法正常表示。