/** * 显示角色权限映射页面 * * @param mapping * @param actionForm * @param request * @param response * @return * @throws Exception */ public ActionForward showPrivilege( ActionMapping mapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) throws Exception { long deptId = ParamUtil.getLongParameter(request, "deptId", 0); long roleId = ParamUtil.getLongParameter(request, "roleId", 0); SysDeptRole deptRole = sysDeptRoleService.find(deptId, roleId); if (deptRole == null) { // 如果没有找到则创建一个 deptRole = new SysDeptRole(); deptRole.setDept(sysDepartmentService.findById(deptId)); deptRole.setRole(sysRoleService.findById(roleId)); sysDeptRoleService.create(deptRole); } request.setAttribute("role", deptRole); SysTree parent = sysTreeService.getSysTreeByCode(Constants.TREE_APP); List list = new ArrayList(); sysTreeService.getSysTree(list, (int) parent.getId(), 0); request.setAttribute("list", list); return mapping.findForward("show_privilege"); }
/** * 设置部门角色 * * @param mapping * @param actionForm * @param request * @param response * @return * @throws Exception */ public ActionForward setRole( ActionMapping mapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) throws Exception { ActionMessages messages = new ActionMessages(); long deptId = ParamUtil.getIntParameter(request, "deptId", 0); SysDepartment dept = sysDepartmentService.findById(deptId); // 查找部门对象 if (dept != null) { // 部门存在 long[] id = ParamUtil.getLongParameterValues(request, "id"); // 获取roleId if (id != null) { // 先确定要删除的角色 // 再确定要增加的角色 // 先把部门下面的角色清空 Iterator iter = dept.getRoles().iterator(); while (iter.hasNext()) { sysDeptRoleService.delete((SysDeptRole) iter.next()); } // 创建新角色 for (int i = 0; i < id.length; i++) { SysRole role = sysRoleService.findById(id[i]); if (role == null) continue; SysDeptRole deptRole = new SysDeptRole(); deptRole.setDept(dept); deptRole.setRole(role); sysDeptRoleService.create(deptRole); } } } addMessages(request, messages); return mapping.findForward("show_msg"); }