From a215575f155b3cb6ce37c79185f9d555496dfb8d Mon Sep 17 00:00:00 2001 From: "Barbara B. Frosik" <bfrosik@aps.anl.gov> Date: Thu, 22 Jan 2015 19:44:10 +0000 Subject: [PATCH] --- .../controllers/ExperimentController.java | 43 +++------- .../portal/controllers/LoginController.java | 5 +- .../controllers/UserSystemRoleController.java | 83 ++++++++----------- .../experimentUsersEditDataTable.xhtml | 2 +- .../DmWebPortal/web/views/loginHelp.xhtml | 1 - .../roleType/roleTypeListDataTable.xhtml | 2 +- 6 files changed, 51 insertions(+), 85 deletions(-) diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/ExperimentController.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/ExperimentController.java index 1a1ea26e..46149030 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/ExperimentController.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/ExperimentController.java @@ -48,6 +48,10 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper @EJB private UserExperimentRoleFacade userExperimentRoleFacade; + int USER_ROLE_ID = 4; + int PI_ROLE_ID = 3; + int MANAGER_ROLE_ID = 2; + public class ExperimentUser extends CloneableEntity { String username; @@ -79,27 +83,27 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper } public boolean isIsManager() { - return roles[2]; + return roles[MANAGER_ROLE_ID]; } public void setIsManager(boolean isManager) { - roles[2] = isManager; + roles[MANAGER_ROLE_ID] = isManager; } public boolean isIsPI() { - return roles[3]; + return roles[PI_ROLE_ID]; } public void setIsPI(boolean isPI) { - roles[3] = isPI; + roles[PI_ROLE_ID] = isPI; } public boolean isIsUser() { - return roles[4]; + return roles[USER_ROLE_ID]; } public void setIsUser(boolean isUser) { - roles[4] = isUser; + roles[USER_ROLE_ID] = isUser; } public void setIsInRole(RoleType role, boolean isInRole) { @@ -120,10 +124,6 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper } } - public boolean canAddUsers() { - return roles[2] || roles[3]; - } - @Override public int hashCode() { return userId + experimentId * 100; @@ -337,25 +337,8 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper public void setNoExperimentUsersTypeTable(ExperimentController.NoExperimentUsersTypeTable noExperimentUsersTypeTable) { this.noExperimentUsersTypeTable = noExperimentUsersTypeTable; } - - public boolean canAddUsers(String username) { - UserInfo user = userInfoFacade.findByUsername(username); - // optimally here it should find all system roles. The roles optimally would have a policy - // defining adding/removing users. For each of the role that allows adding users, - // the code that is for administartor role (below) would be added. - RoleType rt = roleTypeFacade.findById(1); // administrator role id - if (rt == null) { - return false; - } - if (rt.isAdmin(username)) { - return true; - } - return false; - // experiment type permission - // return experimentUsersMap.get(username).canAddUsers(); - } - - public void updateRemovedExperimentRoles() { + + public void updateRemovedExperimentRoles() { UserExperimentRole userExperimentRole; List<RoleType> roleTypesList = roleTypeFacade.findAll(); for (UserInfo user : experimentUsers.keySet()) { @@ -454,7 +437,7 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper try { UserExperimentRole userExperimentRole; for (UserInfo user : newUsers) { - userExperimentRole = new UserExperimentRole(user.getId(), current.getId(), 4); // set the User + userExperimentRole = new UserExperimentRole(user.getId(), current.getId(), USER_ROLE_ID); // set the User user.getUserExperimentRoleList().add(userExperimentRole); userInfoFacade.edit(user); } diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/LoginController.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/LoginController.java index 30da44d6..9c3d6182 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/LoginController.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/LoginController.java @@ -37,6 +37,7 @@ public class LoginController implements Serializable private String password = null; private boolean loggedIn = false; private UserInfo user = null; + int ADMIN_ROLE_ID = 1; private static final Logger logger = Logger.getLogger(LoginController.class.getName()); @@ -132,7 +133,7 @@ public class LoginController implements Serializable } else { SessionUtility.addErrorMessage(null, "Invalid Credentials. Username/password combination could not be verified."); - SessionUtility.addErrorMessage(null, "If you are having difficulty logging in, please see our <a href=\"perch.aps.anl.gov:8080/dm/views/loginHelp\">Login Help</a> page."); + SessionUtility.addErrorMessage(null, "If you are having difficulty logging in, please see our <a href=\"/dm/views/loginHelp.xhtml\">login help</a> page."); return (username = password = null); } @@ -179,7 +180,7 @@ public class LoginController implements Serializable public boolean hasSystemRole() { RoleType adminRoleType; - adminRoleType = roleTypeFacade.findById(1); + adminRoleType = roleTypeFacade.findById(ADMIN_ROLE_ID); if (adminRoleType == null) { return false; } diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/UserSystemRoleController.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/UserSystemRoleController.java index d4968403..4b31dcdb 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/UserSystemRoleController.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/UserSystemRoleController.java @@ -28,11 +28,8 @@ public class UserSystemRoleController implements Serializable @EJB private RoleTypeFacade roleTypeFacade; - - public UserSystemRoleController() { - this.systemRoleTable = new SystemRoleTypeTable(); - this.noSystemRoleTable = new NoSystemRoleTypeTable(); - } + + int ADMIN_ROLE_ID = 1; class SystemRoleTypeTable extends DataTableController<UserInfo> { @@ -43,12 +40,7 @@ public class UserSystemRoleController implements Serializable @Override public List<UserInfo> findAll() { - try { - int id = Integer.parseInt(systemRoleId); - return userInfoFacade.findSystemRoleUsers(id); - } catch (NumberFormatException e) { - return null; - } + return userInfoFacade.findSystemRoleUsers(systemRole.getId()); } } @@ -61,21 +53,29 @@ public class UserSystemRoleController implements Serializable @Override public List<UserInfo> findAll() { - try { - int id = Integer.parseInt(systemRoleId); - return userInfoFacade.findNoSystemRoleUsers(id); - } catch (NumberFormatException e) { - return null; - } + return userInfoFacade.findNoSystemRoleUsers(systemRole.getId()); } } private SystemRoleTypeTable systemRoleTable; private NoSystemRoleTypeTable noSystemRoleTable; - private String systemRoleId; + private RoleType systemRole; private static final Logger logger = Logger.getLogger(UserSystemRoleController.class.getName()); + + public UserSystemRoleController() { + this.systemRoleTable = new SystemRoleTypeTable(); + this.noSystemRoleTable = new NoSystemRoleTypeTable(); + } + + public RoleType getSystemRole() { + return systemRole; + } + + public void setSystemRole(RoleType systemRole) { + this.systemRole = systemRole; + } public SystemRoleTypeTable getSystemRoleTable() { return systemRoleTable; @@ -92,18 +92,9 @@ public class UserSystemRoleController implements Serializable public void setNoSystemRoleTable(NoSystemRoleTypeTable noSystemRoleTable) { this.noSystemRoleTable = noSystemRoleTable; } - - public String getSystemRoleId() { - return systemRoleId; - } - - public void setSystemRoleId(String systemRoleId) { - this.systemRoleId = systemRoleId; - } public String getSystemRoleName() { - int id = Integer.parseInt(systemRoleId); - return roleTypeFacade.findById(id).getName(); + return systemRole.getName(); } public String resetSystemRoleUserList() { @@ -116,10 +107,10 @@ public class UserSystemRoleController implements Serializable logger.debug("Resetting System Role Add User list"); noSystemRoleTable.resetList(); } - + public String displayRole(String user) { // for now this method returns "Administrator" if user has this role, and "User" otherwise - RoleType rt = roleTypeFacade.findById(1); + RoleType rt = roleTypeFacade.findById(ADMIN_ROLE_ID); if (rt == null) { return null; } @@ -138,23 +129,19 @@ public class UserSystemRoleController implements Serializable } public String addSystemRole() { - int id = Integer.parseInt(systemRoleId); - RoleType rt = roleTypeFacade.findById(id); - if (rt != null) { - List<UserInfo> uiList = noSystemRoleTable.getSelectedObjectList(); - - if (uiList == null) { - logger.debug("null selected list"); - } else if (uiList.isEmpty()) { - logger.debug("empty selected list"); - } else { - for (UserInfo userInfo : uiList) { - rt.addRoleTypeToUser(userInfo); - } + List<UserInfo> uiList = noSystemRoleTable.getSelectedObjectList(); + + if (uiList == null) { + logger.debug("null selected list"); + } else if (uiList.isEmpty()) { + logger.debug("empty selected list"); + } else { + for (UserInfo userInfo : uiList) { + systemRole.addRoleTypeToUser(userInfo); } } try { - roleTypeFacade.edit(rt); + roleTypeFacade.edit(systemRole); resetNoSystemRoleUserList(); return resetSystemRoleUserList(); } catch (RuntimeException ex) { @@ -165,13 +152,9 @@ public class UserSystemRoleController implements Serializable public String removeSystemRole() { logger.debug("removing system role from user"); - int id = Integer.parseInt(systemRoleId); - RoleType rt = roleTypeFacade.findById(id); - if (rt != null) { - rt.removeRoleTypeFromUser(systemRoleTable.currentObject); - } + systemRole.removeRoleTypeFromUser(systemRoleTable.currentObject); try { - roleTypeFacade.edit(rt); + roleTypeFacade.edit(systemRole); resetNoSystemRoleUserList(); return resetSystemRoleUserList(); } diff --git a/src/java/DmWebPortal/web/views/experiment/experimentUsersEditDataTable.xhtml b/src/java/DmWebPortal/web/views/experiment/experimentUsersEditDataTable.xhtml index dacb92de..6407d75a 100644 --- a/src/java/DmWebPortal/web/views/experiment/experimentUsersEditDataTable.xhtml +++ b/src/java/DmWebPortal/web/views/experiment/experimentUsersEditDataTable.xhtml @@ -10,7 +10,7 @@ <ui:include src="experimentUserAddDialog.xhtml" /> - <p:commandButton id="experimentUserAddButton" value="Add" onclick="PF('experimentUserAddDialogWidget').show();" rendered="#{experimentController.canAddUsers(loginController.username)}" icon="ui-icon-plus" > + <p:commandButton id="experimentUserAddButton" value="Add" onclick="PF('experimentUserAddDialogWidget').show();" rendered="#{loginController.hasSystemRole()}" icon="ui-icon-plus" > <p:tooltip for="experimentUserAddButton" value="Add new users." /> </p:commandButton> diff --git a/src/java/DmWebPortal/web/views/loginHelp.xhtml b/src/java/DmWebPortal/web/views/loginHelp.xhtml index 632ee177..b057379f 100644 --- a/src/java/DmWebPortal/web/views/loginHelp.xhtml +++ b/src/java/DmWebPortal/web/views/loginHelp.xhtml @@ -3,7 +3,6 @@ <html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" - xmlns:p="http://primefaces.org/ui" xmlns:h="http://java.sun.com/jsf/html"> <h:head> diff --git a/src/java/DmWebPortal/web/views/roleType/roleTypeListDataTable.xhtml b/src/java/DmWebPortal/web/views/roleType/roleTypeListDataTable.xhtml index 1a58e673..d4172394 100644 --- a/src/java/DmWebPortal/web/views/roleType/roleTypeListDataTable.xhtml +++ b/src/java/DmWebPortal/web/views/roleType/roleTypeListDataTable.xhtml @@ -45,7 +45,7 @@ </p:commandLink> <p:commandLink action="#{userSystemRoleController.prepareSystemRoleView()}" rendered="#{roleTypeController.isRoleSystemType(roleTypeObject)}" styleClass="ui-icon ui-icon-person" title="List All" > - <f:setPropertyActionListener value="#{roleTypeObject.id}" target="#{userSystemRoleController.systemRoleId}"/> + <f:setPropertyActionListener value="#{roleTypeObject}" target="#{userSystemRoleController.systemRole}"/> </p:commandLink> </div> </p:column> -- GitLab