📄 roleaction.java
字号:
String forward = "roleMain";
String objId = request.getParameter("objId");
logger.debug("getObjToPage objId= " + objId);
int roleId = 0;
if (objId != null && !objId.equals("")) {
roleId = Integer.parseInt(objId);
}
try {
Role role = roleMgr.findById(roleId);
if (role == null) {
role = new Role();
}
// 根据角色ID获取角色权限对象集合
List<RoleRights> roleRights = roleMgr.getRightsByRoleId(roleId);
logger.debug("roleRights.size= " + roleRights.size());
// hrw 2008-12-24 modify
Map<String, WebRightsView> webRightsViews = rightsMgr
.getWebRightsView(roleRights, Constants.ROLE_FALG,
Constants.JSPRIGHTSCONTROL_NO);
request.setAttribute("webRightsViews", webRightsViews);
logger.debug("webRightsViews : " + webRightsViews.size());
request.setAttribute("positionRights", roleRights);
// modify end
// request.setAttribute("roleRights", roleRights);
request.setAttribute("role", role);
} catch (Exception e) {
e.printStackTrace();
}
return mapping.findForward(forward);
}
/**
* 获取权限到数据范围授权页面
*
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward [ /admin/authorization/deptTree.jsp ]
*/
// public ActionForward getRightsToPage(ActionMapping mapping,
// ActionForm form, HttpServletRequest request,
// HttpServletResponse response) {
// String forward = "deptTree";
// String roId = request.getParameter("roleId");// 角色ID
// String riId = request.getParameter("rightsId");// 权限ID
// int rightsId = 0;
// int roleId = 0;
// if (roId != null && !roId.equals("")) {
// roleId = Integer.parseInt(roId);
// }
// if (riId != null && !riId.equals("")) {
// rightsId = Integer.parseInt(riId);
// }
//
// try {
// // 根据权限ID获取权限对象
// Rights rights = rightsMgr.getRightsDAO().findById(rightsId);
// // 根据角色ID获取角色对象
// Role role = roleMgr.findById(roleId);
// logger.debug("角色ID " + roleId);
// if (rights == null) {
// rights = new Rights();
// }
// if (role == null) {
// role = new Role();
// }
// // 根据角色ID和权限ID获取角色权限数据范围
// List<RoleRightArea> roleRightsArea = roleMgr
// .getDataAreaByRightIdRoleId(rightsId, roleId);
// logger.debug("roleRightsArea.size()= " + roleRightsArea.size());
// request.setAttribute("roleRightsArea", roleRightsArea);
// request.setAttribute("rights", rights);
// request.setAttribute("role", role);
// } catch (SystemException e) {
// e.printStackTrace();
// request.setAttribute("info", e.getMessage());
// }
// return mapping.findForward(forward);
// }
public ActionForward getRightsToPage(ActionMapping mapping,
ActionForm form, HttpServletRequest request,
HttpServletResponse response) {
// 定义转向页面变量
String forward = "deptTree";
// 获取页面传递参数
String pId = request.getParameter("roleId");// 岗位ID
String rId = request.getParameter("rightsId");// 权限ID
int rightsId = 0;
int roleId = 0;
if (pId != null && !pId.equals("")) {
roleId = Integer.parseInt(pId);
}
if (rId != null && !rId.equals("")) {
rightsId = Integer.parseInt(rId);
}
// 2008-12-18 hrw add
String dataArea = request.getParameter("dataArea");
logger.debug("dataArea : " + dataArea);
if (dataArea == null) {
dataArea = "";
}
logger.debug("dataArea : " + dataArea);
// end add
try {
// 根据ID获取Rights实体对象
Rights rights = rightsMgr.getRightsDAO().findById(rightsId);
// 根据ID获取role实体对象
Role role = roleMgr.findById(roleId);
logger.debug("角色ID " + roleId);
if (rights == null) {
rights = new Rights();
}
if (role == null) {
role = new Role();
}
// 获取权限已有数据范围
// hrw 2008-12-16 modify 如果数据范围在页面有重新选过,不再从数据库取。
List<RoleRightArea> roleRightsArea = new ArrayList<RoleRightArea>();
if (!"".equals(dataArea) && dataArea != null) {
String[] dataAreas = dataArea.split(",");
logger.debug("dataAreas : " + dataAreas.length);
roleRightsArea = authorizationMgr
.conversionRoleRightsArea(dataAreas);
} else {
roleRightsArea = roleMgr.getDataAreaByRightIdRoleId(rightsId,
roleId);
}
// end modify
logger.debug("岗角色权限数据范围长度 " + roleRightsArea.size());
// 2008-12-16 hrw modify
// request.setAttribute("positionRightsArea", positionRightsArea);
String prJavascriptStr = SetupTreeView.getRoleSetupDeptTreeView("",
1, roleRightsArea);
request.setAttribute("prJavascriptStr", prJavascriptStr);
// modify end
request.setAttribute("rights", rights);
request.setAttribute("role", role);
} catch (SystemException e) {
logger.error(e.getMessage());
request.setAttribute("info", e.getMessage());
}
return mapping.findForward(forward);
}
/**
* 角色、权限、数据范围授权
*
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward [ /admin/authorization/main.jsp ]
* @throws IOException
*/
public ActionForward authorization(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws IOException {
boolean isSuccessfull = true;
String objId = request.getParameter("objId");
String useScheme = request.getParameter("useScheme");// 是否数据范围全局授权
String[] rightIds = request.getParameterValues("right");// 极限ID集合
logger.debug("授权对象ID: " + objId);
logger.debug("权限ID集合: " + rightIds);
// hrw 2008-12-12 对以下逻辑进行封装,封装在AuthorizationMgr里
authorizationMgr.authorizationRole(objId, useScheme, rightIds, request);
// int roleId = 0;
// if (objId != null && !objId.equals("")) {
// roleId = Integer.parseInt(objId);
// }
// Role r = roleMgr.findById(roleId);
// if (r != null) {
// try {
// // 根据授权角色对象集合获取岗位权限对象集合
// List<RoleRights> rr = roleMgr.findByRole(roleId);
// logger.debug("角色权限对象集合的大小是: " + rr.size());
// // 删除角色权限数据范围表信息
// roleMgr.deleteRoleRightsAreaByRoleRights(rr);
// // 删除角色权限表信息
// roleMgr.deleteRoleRightsByRoleRights(rr);
// } catch (NumberFormatException e) {
// e.printStackTrace();
// isSuccessfull = false;
// } catch (Exception e1) {
// e1.printStackTrace();
// isSuccessfull = false;
// }
// for (int i = 0; i < rightIds.length; i++) {
// String rid = rightIds[i];
// int rightId = Integer.parseInt(rid);
// logger.debug("权限ID: " + rid);
//
// String dataAreaIds = "";// 数据范围对象
// if (useScheme != null && useScheme.equals("1")) {
// logger.debug("使用方案授权 ");
// String scheme = request.getParameter("scheme");
// int id = 0;
// if (scheme != null && !scheme.equals("")) {
// id = Integer.parseInt(scheme);
// dataAreaIds = dataAreaSchemeMgr.findTreeviewIdsById(id);
// }
// } else {
// logger.debug("闁劖顒為幒鍫熸綀 ");
// /*
// * 在rightTree.js里,每个树节点都挂一下隐藏域,隐藏域属性ID,name均为 节点ID + "_area"
// * 字符串, 隐藏域存储数据范围页面返回的部门节点ID集合组成的字符串
// */
// dataAreaIds = request.getParameter(rid + "_area");// 数据范围对象
// }
//
// logger.debug("dataAreaIds: " + dataAreaIds);
// roleMgr.saveThreeObjRelation(roleId, rightId, dataAreaIds);
//
// }
// if (isSuccessfull) {// 授权成功
// // 获取当前用户信息
// User user = (User) request.getSession().getAttribute(
// Constants.SESSION_USER);
// // 获取全局会话
// ServletContext application = request.getSession()
// .getServletContext();
// // 获取用户信息
// Map userInfo = (Map) application
// .getAttribute(SystemConstant.APPLICATION_USER_INFO);
// if (userInfo != null) {
// logger.debug("userInfo: " + userInfo + " userInfo.size: "
// + userInfo.size());
// // 获取该角色所有权限
// List<Rights> rights = roleMgr.getAllRightsByRoleId(roleId);
//
// // 遍历存放用户session的Map对象
// for (Object o : userInfo.keySet()) {
// Integer userId = (Integer) o;
// logger.debug("key: " + userId);
//
// // 不是本人的ID(管理员)
// if (!userId.equals(user.getId())) {
// // 获取Session
// HttpSession session = (HttpSession) userInfo.get(o);
// logger.debug("session: " + session);
// User u = (User) session
// .getAttribute(Constants.SESSION_USER);
// // 如果当前获取的用户是属于该角色,就修改此用户Session
// List<UserRole> ur = roleMgr.findByUserId(u.getId());
// // 遍历存放用户角色对象
// for (int j = 0; j < ur.size(); j++) {
// if (ur.get(j).getRoleId().equals(roleId)) {
// // 设入用户权限是否被修改的值
// session
// .setAttribute(
// SystemConstant.SESSION_RIGHTS_IS_UPDATED,
// true);
// // 设入角色所拥有的权限集合
// session.setAttribute(
// SystemConstant.SESSION_RIGHTS,
// rights);
// }
// }
// }
// }
//
// }
//
// }
return getObjToPage(mapping, form, request, response);
// } else {
// response.setCharacterEncoding("utf-8");
// PrintWriter out = response.getWriter();
// out.print("<script>");
// out.print("alert('授权角色不存在!');");
// out.print("location.href='" + request.getContextPath()
// + "/role.do?dispatch=getObjToPage'");
// out.print("</script>");
// return null;
// }
}
/**
* 获取用户到设置角色页面
*
* @param mapping
* @param form
* @param request
* @param response
* @return
* @throws ApplicationException
*/
@SuppressWarnings("unchecked")
public ActionForward toSetRolePage(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws ApplicationException {
// 2008-12-26 hrw modify
// 设置角色改:点设置角色后,转到设置角色页面,该页面不列出要设置用户的用户列表。在页面多选的javascript代码已改。
// String iValue = request.getParameter("iValue");
// String id = request.getParameter("id");
// int treeViewId = 0;
// if (id != null && !id.equals("")) {
// treeViewId = Integer.parseInt(id);
// }
// Treeview treeview = treeViewMgr.findById(treeViewId);
// request.setAttribute("treeview", treeview);
RoleForm roleForm = (RoleForm) form;
List<User> users = new ArrayList();
String userIds = roleForm.getUserIds();
logger.debug("userIds : " + userIds);
String[] userIdArray = userIds.split(",");
List userIdList = new ArrayList();
for (int i = 0; i < userIdArray.length; i++) {
if (userIdArray[i] != null && !"".equals(userIdArray[i])) {
userIdList.add(userIdArray[i]);
}
}
// 取要设置的所有用户。
users = utilDao.findByIds(DataBaseTableName.User, "id", userIdList);
// if (StringTool.isNotBlank(iValue)) {
// int length = Integer.parseInt(iValue);
// try {
// for (int i = 1; i <= length; i++) {
// String check = request.getParameter("check" + i);
// if (check != null && check.equals("on")) {
// String userId = request.getParameter("userId" + i);
// userIds += userId + ",";
// User user = treeViewMgr.getUserById(Integer
// .parseInt(userId));
// if (user != null) {
// users.add(user);
// }
// } else {
// continue;
// }
// }
// request.setAttribute("users", users);
// request.setAttribute("userSize", users.size());
//
// } catch (Exception e) {
// e.printStackTrace();
// throw new ApplicationException("");
// }
// } else {
// request.setAttribute("message", "");
// }
// end modify
List<Role> roles = roleMgr.findAll();
logger.debug("roles : " + roles.size());
List<UserRole> userRole = new ArrayList();
for (int i = 0; i < users.size(); i++) {
List<UserRole> ur = roleMgr.findByUserId(users.get(i).getId());
userRole.addAll(ur);
}
List<RoleVo> rvs = new ArrayList();
for (int i = 0; i < roles.size(); i++) {
RoleVo rv = new RoleVo();
rv.setId(roles.get(i).getId());
rv.setRoleName(roles.get(i).getRoleName());
boolean flag = false;
for (int j = 0; j < userRole.size(); j++) {
if (userRole.get(j).getRoleId().equals(roles.get(i).getId())) {
flag = true;
break;
}
}
if (flag) {
rv.setIsChecked("checked");
} else {
rv.setIsChecked("");
}
rvs.add(rv);
}
logger.debug("roleVOs : " + rvs.size());
request.setAttribute("roles", rvs);
request.setAttribute("userIds", userIds);
// 2009-01-15 add
logger.debug("nodeId : " + request.getParameter("nodeId"));
request.setAttribute("nodeId", request.getParameter("nodeId"));
// end add
return mapping.findForward("setRole");
}
@SuppressWarnings("unchecked")
public ActionForward searchRole(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
String forward = "roleList";
RoleForm roleForm = (RoleForm) form;
String roleName = roleForm.getRoleName();
logger.debug("roleName : " + roleName);
List<Role> roles = utilDao.findByField(DataBaseTableName.Role,
"roleName", "like", roleName);
// Role role = roleMgr.findById(roleId);
if (roles != null && roles.size() > 0) {
String currentPage = request.getParameter("currentPage");
XPage xpage = new XPage(request.getContextPath()
+ "/role.do?dispatch=searchRole&roleName=" + roleName,
roles.size(), 1, 10, roles);
if (currentPage != null && !currentPage.equals("")) {
xpage.setCurrentItems(Integer.parseInt(currentPage));
} else {
xpage.setCurrentItems(1);
}
xpage.setPageBar();
request.setAttribute("xpage", xpage);
}
return mapping.findForward(forward);
}
@SuppressWarnings("unchecked")
public ActionForward setRole(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
RoleForm roleForm = (RoleForm) form;
String userIds = roleForm.getUserIds();
logger.debug("userIds : " + userIds);
String[] userIdArray = userIds.split(",");
List userIdList = new ArrayList();
for (int i = 0; i < userIdArray.length; i++) {
if (userIdArray[i] != null && !"".equals(userIdArray[i])) {
userIdList.add(userIdArray[i]);
}
}
if (request.getParameterValues("roles") != null) {
String[] roles = request.getParameterValues("roles");
roleMgr.setRole(roles, userIdList);
// 2009-01-21 add
Integer[] userId = new Integer[userIdList.size()];
for (int i = 0; i < roles.length; i++) {
userId[i] = Integer.parseInt(userIdList.get(i).toString());
}
rightsSessionMgr.reJspRightsControl(request, null, userId, Constants.RE_JSPRIGHTS_SESSION_USER);
}
// end add
request.setAttribute("nodeId", request.getParameter("nodeId"));
return toSetRolePage(mapping, form, request, response);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -