You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
94 lines
2.7 KiB
94 lines
2.7 KiB
package com.demo.controller;
|
|
|
|
import com.demo.pojo.Permission;
|
|
import com.demo.pojo.Role;
|
|
import com.demo.service.PermissionService;
|
|
import com.demo.service.RolePermissionService;
|
|
import com.demo.service.RoleService;
|
|
import com.demo.common.util.Page;
|
|
import com.github.pagehelper.PageHelper;
|
|
import com.github.pagehelper.PageInfo;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Controller;
|
|
import org.springframework.ui.Model;
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
|
|
/**
|
|
* 管理员角色controler
|
|
*/
|
|
@Controller
|
|
@RequestMapping("/config")
|
|
public class RoleController {
|
|
@Autowired
|
|
RoleService roleService;
|
|
@Autowired
|
|
RolePermissionService rolePermissionService;
|
|
@Autowired
|
|
PermissionService permissionService;
|
|
|
|
@RequestMapping("/addRoleUI")
|
|
public String addRole(){
|
|
|
|
return "syspage/admin-role-add";
|
|
}
|
|
|
|
@RequestMapping("/listRole")
|
|
public String list(Model model, Page page){
|
|
PageHelper.offsetPage(page.getStart(),page.getCount());//分页查询
|
|
List<Role> rs= roleService.list();
|
|
int total = (int) new PageInfo<>(rs).getTotal();//总条数
|
|
page.setTotal(total);
|
|
|
|
model.addAttribute("rs", rs);
|
|
|
|
model.addAttribute("roleSize",total);
|
|
|
|
Map<Role,List<Permission>> role_permissions = new HashMap<>();
|
|
|
|
for (Role role : rs) {
|
|
List<Permission> ps = permissionService.list(role);
|
|
role_permissions.put(role, ps);
|
|
}
|
|
model.addAttribute("role_permissions", role_permissions);
|
|
|
|
return "syspage/admin-role";
|
|
}
|
|
|
|
@RequestMapping("/editRole")
|
|
public String list(Model model, long id){
|
|
Role role =roleService.get(id);
|
|
model.addAttribute("role", role);
|
|
//所有权限
|
|
List<Permission> ps = permissionService.list();
|
|
model.addAttribute("ps", ps);
|
|
//当前管理员拥有的权限
|
|
List<Permission> currentPermissions = permissionService.list(role);
|
|
model.addAttribute("currentPermissions", currentPermissions);
|
|
|
|
return "syspage/admin-role-edit";
|
|
}
|
|
|
|
@RequestMapping("/updateRole")
|
|
public String update(Role role,long[] permissionIds){
|
|
rolePermissionService.setPermissions(role, permissionIds);
|
|
roleService.update(role);
|
|
return "redirect:listRole";
|
|
}
|
|
|
|
@RequestMapping("/addRole")
|
|
public String list(Model model, Role role){
|
|
roleService.add(role);
|
|
return "redirect:listRole";
|
|
}
|
|
|
|
@RequestMapping("/deleteRole")
|
|
public String delete(Model model, long id){
|
|
roleService.delete(id);
|
|
return "redirect:listRole";
|
|
}
|
|
|
|
} |