@RequestMapping(value = "/permGroup/{permGroupId}") @PermissionAnnotation(name = "权限组列表", type = PermissionAnnotation.TYPE_TAG) public String permGroup( ModelMap model, @PathVariable java.lang.Long permGroupId, HttpServletRequest request, HttpServletResponse response) throws IOException { Long roleId = getSessionRoleId(request); UserDetails userDetails = this.getAdminLoginUser(request); if (objectUtils.isEmpty(userDetails)) { return "redirect:/admin/login"; } String result = "/admin/index"; PermissionGroup permissionGroup = this.permissionGroupManager.getById(permGroupId); String permGroupCode = null == permissionGroup ? "" : permissionGroup.getCode(); if (objectUtils.isNotEmpty(permGroupCode)) { List<Permission> permissionList = userManager.getPermissions(roleId, permGroupCode, userDetails); model.addAttribute("AUTH_PERMISSIONLIST", permissionList); model.addAttribute("permGroupId", permGroupId); model.addAttribute("currentProduct", getCurrentProduct(request)); Permission permission = userManager.getFirstPermission(roleId, permGroupCode, userDetails); if (null != permission && null != permission.getUrl() && !permission.getUrl().trim().equals("")) { if (permission.getUrl().startsWith("http://")) { result = "redirect:" + permission.getUrl(); } else if (permission.getUrl().startsWith("/") && permission.getUrl().indexOf("?") != -1) { result = "redirect:" + permission.getUrl() + "&AUTH_PERM_ID=" + permission.getId(); } else if (permission.getUrl().startsWith("/") && permission.getUrl().indexOf("?") == -1) { result = "redirect:" + permission.getUrl() + "?AUTH_PERM_ID=" + permission.getId(); } else { String url = request.getHeader("Referer"); result = "redirect:" + url; } } else { String url = request.getHeader("Referer"); result = "redirect:" + url; } } return result; }
/** * 获得指定产品下权限json串 * * @param userDetails * @param productCode * @param roleId * @return String */ private String getPermissionJsonDatas(UserDetails userDetails, String productCode, Long roleId) { StringBuffer jsonObject = new StringBuffer("["); List<PermissionGroup> permissionGroupList = userManager.getPermissionGroups(roleId, productCode, userDetails); for (PermissionGroup group : permissionGroupList) { List<Permission> permList = userManager.getPermissions(roleId, group.getCode(), userDetails); // if(null!=permList && !permList.isEmpty()){ jsonObject.append("{"); jsonObject.append("\"name\":\"" + group.getName() + "\","); jsonObject.append("\"code\":\"" + group.getCode() + "\","); jsonObject.append("\"imgPath\":\"" + group.getImgPath() + "\","); jsonObject.append("\"id\":\"" + group.getId() + "\","); jsonObject.append("\"sortId\":\"" + group.getSortId() + "\","); if (null != permList && !permList.isEmpty()) { jsonObject.append("\"permList\":["); for (int j = 0; j < permList.size(); j++) { Permission perm = permList.get(j); jsonObject.append("{"); jsonObject.append("\"name\":\"" + perm.getName() + "\","); jsonObject.append("\"code\":\"" + perm.getCode() + "\","); jsonObject.append("\"imgPath\":\"" + perm.getImgPath() + "\","); jsonObject.append("\"id\":\"" + perm.getId() + "\","); jsonObject.append("\"sortId\":\"" + perm.getSortId() + "\","); jsonObject.append("\"url\":\"" + perm.getUrl() + "\""); if (j < permList.size() - 1) { jsonObject.append("},"); } else { jsonObject.append("}"); } } jsonObject.append("]"); } jsonObject.append("},"); // } } String permJson = jsonObject.toString(); if (permJson.endsWith(",")) { permJson = permJson.substring(0, permJson.length() - 1); } permJson += "]"; return permJson; }