这一章我们完成了角色记录的CRUD操作,因为角色牵扯到关联的用户,所以不能随便的删除和修改,我们写代码的时候也要慎重处理,下面我们来看看这一章都完成了哪些重要任务。
一、有条件查询分页记录
在角色管理页面上,除了要展示角色记录的基本信息之外,还要统计角色拥有的权限数量和关联的用户数量,这就需要用到统计函数了,SQL语句稍作处理就能查询出来有条件的分页记录。
二、添加角色记录
添加角色的时候,要在弹窗页面中填写角色的基本信息,然后还要在穿梭框里面选择角色拥有哪些权限。穿梭框里面的权限记录是通过Ajax查询出来,感兴趣的同学可以自己看一下弹窗页面init()函数的代码。
三、修改角色信息
Emos项目中内置了若干角色,这些角色都含有默认的权限。用户修改这些内置角色的时候,只能给它们扩展更多的权限,但是决不能取消默认的权限。在手册中我讲了如何生成穿梭框左侧的数组和右侧的数组,让穿梭框中某些选中的选项不能被取消,只要你弄懂穿梭框的左右数组的格式就简单多了。
提交Ajax请求的时候,前端页面要判断用户是都改动了角色拥有的权限,并告知给后端的Web方法,因为后端程序要根据这个标志位来决定是否踢用户下线。
四、删除角色记录
删除角色要非常慎重,因为弄不好系统就会崩溃。比如说你把超级管理员角色删除了,将来谁能管理Emos系统呢?还有就是你把系统内置的角色删除了,将来谁来审批工作流。所以系统内置的角色一律不准删除,能删除的都是非内置角色。即便是非内置角色,删除之前还要判断是否关联了用户,关联了用户的角色是不能删除的。