一、概述
权限管理系统需要代码实现系统用户的管理、角色管理、权限管理以及给用户分配角色、给角色分配权限。本程序前端主要采用easyui框架、thymeleaf、ztree等,后台使用springboot+shiro+mybatis。
二、用户管理
该部分主要针对系统管理员对系统中的所有用户进行管理、包含对用户的CRUD操作以及对用户分配角色。关键点需要使用easyui组件datagrid网格数据处理。
目标效果
前端代码
用户管理页面
后台Controller
@RequestMapping("/findByPage.do")
public void findByPage(HttpServletRequest request,HttpServletResponse response) throws IOException{
//分页查询 获取当前页和每页条数
String pageNum = request.getParameter("page"); //当前页
String pageSize = request.getParameter("rows"); //每页多少条数据
if(pageNum == null || "".equals(pageNum)){
pageNum = "1";
}
if(pageSize == null || "".equals(pageSize)){
pageSize = "10";
}
//计算开始的记录数据
int offset = (Integer.parseInt(pageNum) - 1) * Integer.parseInt(pageSize);
//从数据库中获取用户数据
List list = userService.findByPage(offset, Integer.parseInt(pageSize));
//获取用户表的总记录条数
int total = userService.count();
//把用户信息封装到json中,返回到页面
JSONObject json = new JSONObject();
json.put("rows", list);
json.put("total", total);
json.put("msg", "获取用列表成功");
PrintWriter out = response.getWriter();
out.print(json.toString());
out.flush();
out.close();
}
给用户分配角色
选中用户—>获取用户id—>需要后台准备两份数据(1、根据当前用户的id,遍历用户角色表获取当前用户已经用户的角色,2、遍历角色表,获取所有的角色)—>选中角色后,需要把当前用户的id和所有选中的角色返回后台进行处理。
分配角色弹出框代码
用户角色分配后台代码,关键点需要把用户角色表中原来该用户所拥有的角色删除后重新插入
/**
* 为当前用户分配角色
* @param request
* @param response
* @throws Exception
*/
@RequestMapping("/save_assignRole.do")
public void save_assignRole(HttpServletRequest request,HttpServletResponse response) throws Exception{
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
JSONObject json = new JSONObject();
String userId = request.getParameter("user_id");
String id = request.getParameter("ids");
String[] ids = id.split(",");
//进数据库操作
if(userId != null && !"".equals(userId)){
//根据userId删除用户角色表中的数据
userRoleService.deleteByUserId(Integer.parseInt(userId));
//把新分配的角色保存到数据库表中
int result = 0;
if(ids != null && ids.length > 0){
for(String roleId : ids){
UserRole ur = new UserRole();
ur.setUser_id(Integer.parseInt(userId));
ur.setRole_id(Integer.parseInt(roleId));
userRoleService.insertUserRole(ur);
result++;
}
if(result >= 1){
json.put("success",true);
json.put("msg", "用户分配角色成功!");
}else{
json.put("success",false);
json.put("msg", "用户分配角色失败!");
}
}else{
json.put("success",false);
json.put("msg", "用户分配角色失败!");
}
}else{
json.put("success",false);
json.put("msg", "用户Id为空!");
}
三、角色、权限管理
思路、代码基本跟以上类似
目标效果
权限树关键代码
前端