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 6af9e452b5350d1e897a58f3b10735b08aea6915..cc5e5b4a67648b2f11957b58517ee8e7ddc22c08 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 @@ -1,3 +1,4 @@ + package gov.anl.aps.dm.portal.controllers; import gov.anl.aps.dm.portal.exceptions.DmPortalException; @@ -6,6 +7,7 @@ import gov.anl.aps.dm.portal.exceptions.InvalidDate; import gov.anl.aps.dm.portal.exceptions.MissingProperty; import gov.anl.aps.dm.portal.model.entities.Experiment; import gov.anl.aps.dm.portal.model.beans.ExperimentFacade; +import gov.anl.aps.dm.portal.model.beans.ExperimentTypeFacade; import gov.anl.aps.dm.portal.model.beans.RoleTypeFacade; import gov.anl.aps.dm.portal.model.beans.UserExperimentRoleFacade; import gov.anl.aps.dm.portal.model.beans.UserInfoFacade; @@ -13,7 +15,6 @@ import gov.anl.aps.dm.portal.model.entities.CloneableEntity; import gov.anl.aps.dm.portal.model.entities.RoleType; import gov.anl.aps.dm.portal.model.entities.UserExperimentRole; import gov.anl.aps.dm.portal.model.entities.UserInfo; -// import gov.anl.aps.dm.portal.model.tempstorage.ExperimentUser; import gov.anl.aps.dm.portal.utilities.SessionUtility; import java.util.ArrayList; import java.util.HashMap; @@ -39,6 +40,9 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper @EJB private ExperimentFacade experimentFacade; + @EJB + private ExperimentTypeFacade experimentTypeFacade; + @EJB private UserInfoFacade userInfoFacade; @@ -55,15 +59,9 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper int userId; int experimentId; private final boolean [] roles; -// private final boolean [] updatedRoles; - int maxRoleId = 4; // this is hardcoded, should be determined from the RoleType data table. - // for now leave it hardcoded - -// Map<RoleType, Boolean> roles = new HashMap(); public ExperimentUser(int experimentId, int userId) { - roles = new boolean[maxRoleId+1]; -// updatedRoles = new boolean[maxRoleId+1]; + roles = new boolean[maxExperimentRoleTypeId]; this.experimentId = experimentId; this.userId = userId; } @@ -111,7 +109,6 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper public void setIsInRole(RoleType role, boolean isInRole) { roles[role.getId()] = isInRole; -// updatedRoles[role.getId()] = isInRole; } public boolean[] getRoles() { @@ -120,14 +117,18 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper public void removeAllExperimentRoles() { UserExperimentRole userExperimentRole; - for (int i = 1; i <= maxRoleId; i++) { + for (int i = 1; i <= 4; i++) { if (roles[i]) { userExperimentRole = userExperimentRoleFacade.findByUserExperimentRole(userId, experimentId, i); userExperimentRoleFacade.remove(userExperimentRole); -// updatedRoles[i] = false; } } } + + public void removeExperimentRole(int roleId) { + UserExperimentRole userExperimentRole = userExperimentRoleFacade.findByUserExperimentRole(userId, experimentId, roleId); + userExperimentRoleFacade.remove(userExperimentRole); + } public boolean canAddUsers() { return roles[2] || roles[3]; @@ -135,7 +136,7 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper @Override public int hashCode() { - return userId * 1000 + experimentId; + return userId + experimentId * 100; } @Override @@ -157,46 +158,35 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper } @Override - public List<ExperimentUser> findAll() { - try { - List<UserInfo> list = userInfoFacade.findUsersInExperiment(getCurrent().getId()); - List<ExperimentUser> tempUsersList = convertExperimentUsers(list); - return new ArrayList<>(tempUsersList); - } catch (NumberFormatException e) { - return null; - } + public List<ExperimentUser> findAll() { + List<UserInfo> list = userInfoFacade.findUsersInExperiment(getCurrent().getId()); + return convertExperimentUsers(list); +// return new ArrayList<>(tempUsersList); } List<ExperimentUser> convertExperimentUsers(List<UserInfo> list) { - logger.debug("converring ExperimentUser "); + logger.debug("converting ExperimentUser "); List<RoleType> roleTypes = roleTypeFacade.findByRoleSystemType(false); + ExperimentUser experimentUser; for (UserInfo user : list) { - ExperimentUser eUser = new ExperimentUser(getCurrent().getId(), user.getId()); - eUser.setUsername(user.getUsername()); - if (experimentUsers.containsKey(eUser)) { - eUser = experimentUsers.get(eUser); - } else { - experimentUsers.put(eUser, eUser); + if ((experimentUser = experimentUsers.get(user)) == null) { + experimentUser = new ExperimentUser(getCurrent().getId(), user.getId()); + experimentUser.setUsername(user.getUsername()); + experimentUser.setName(user.getLastName() + ", " + user.getFirstName()); + experimentUsers.put(user, experimentUser); } - eUser.setName(user.getLastName() + ", " + user.getFirstName()); for (RoleType roleType : roleTypes) { boolean inRole = user.inRole(roleType.getId(), getCurrent().getId()); - eUser.setIsInRole(roleType, inRole); + experimentUser.setIsInRole(roleType, inRole); } } - return new ArrayList<>(experimentUsers.keySet()); + return new ArrayList<>(experimentUsers.values()); } @Override public String getTableName() { return "experimentUsersTable"; } - - @Override - public void resetList() { -// experimentUsers.clear(); - super.resetList(); - } } class NoExperimentUsersTypeTable extends DataTableController<UserInfo> { @@ -221,9 +211,16 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper private ExperimentController.ExperimentUsersTable experimentUsersListTable; private ExperimentController.ExperimentUsersTable experimentUsersEditTable; private ExperimentController.NoExperimentUsersTypeTable noExperimentUsersTypeTable; - final private Map<ExperimentUser, ExperimentUser> experimentUsers = new HashMap<>(); + final private Map<UserInfo, ExperimentUser> experimentUsers = new HashMap<>(); + int maxExperimentRoleTypeId = 5; public ExperimentController() { +// List<RoleType> roleTypesList = roleTypeFacade.findAll(); +// for (RoleType roleType : roleTypesList) { +// if ((roleType.getId() > maxExperimentRoleTypeId) && !roleType.isIsSystemRole()) { +// maxExperimentRoleTypeId = roleType.getId(); +// } +// } this.experimentUsersListTable = new ExperimentController.ExperimentUsersTable(); this.experimentUsersEditTable = new ExperimentController.ExperimentUsersTable(); this.noExperimentUsersTypeTable = new ExperimentController.NoExperimentUsersTypeTable(); @@ -300,34 +297,6 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper return "Experiment " + experiment.getName() + " already exists."; } - @Override - public String update() { -// findUsersInExperiment(int experimentId) - for (ExperimentUser experimentUser: experimentUsers.keySet()) { - UserInfo userInfo = userInfoFacade.find(experimentUser.userId); - for (int i = 2; i <= 4; i++) { - UserExperimentRole userExperimentRole = userExperimentRoleFacade.findByUserExperimentRole(experimentUser.userId, experimentUser.experimentId, i); - if (experimentUser.roles[i] && (userExperimentRole == null)) { - userExperimentRole = new UserExperimentRole(experimentUser.userId, experimentUser.experimentId, i); - userExperimentRoleFacade.create(userExperimentRole); -// userInfo.addUserExperimentRole(userExperimentRole); - logger.debug("adding userExperimentRole " + experimentUser.userId + " " + experimentUser.experimentId + " " + i); - } - else if (!experimentUser.roles[i] && (userExperimentRole != null)) { - userExperimentRoleFacade.remove(userExperimentRole); -// userInfo.removeUserExperimentRole(userExperimentRole); - logger.debug("removing userExperimentRole " + experimentUser.userId + " " + experimentUser.experimentId + " " + i); - } -// experimentUser.roles[i] = experimentUser.updatedRoles[i]; - } - } - -// clear(); - experimentUsersListTable.resetList(); - experimentUsersEditTable.resetList(); - return super.update(); - } - private void verifyExperiment(Experiment experiment) throws InvalidDate, MissingProperty { if (experiment.getExperimentType() == null) { throw new MissingProperty("Experiment Type is missing."); @@ -388,7 +357,43 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper // return experimentUsersMap.get(username).canAddUsers(); } - public String getRemovedUserName() { + @Override + public String update() { + boolean updated; + List<RoleType> roleTypesList = roleTypeFacade.findAll(); + for (UserInfo user : experimentUsers.keySet()) { + updated = false; + ExperimentUser experimentUser = experimentUsers.get(user); + for (RoleType roleType : roleTypesList) { + if (!roleType.isIsSystemRole()) { + int roleId = roleType.getId(); + if (!user.inRole(roleId, experimentUser.experimentId)) { + if (experimentUser.roles[roleId]) { + UserExperimentRole userExperimentRole = new UserExperimentRole(experimentUser.userId, experimentUser.experimentId, roleId); + user.addUserExperimentRole(userExperimentRole); + updated = true; + logger.debug("adding userExperimentRole " + experimentUser.userId + " " + experimentUser.experimentId + " " + roleId); + } + } + else if (!experimentUser.roles[roleId]) { + user.removeExperimentRole(roleId, experimentUser.experimentId); + updated = true; + logger.debug("adding userExperimentRole " + experimentUser.userId + " " + experimentUser.experimentId + " " + roleId); + } + } + if (updated) { + userInfoFacade.edit(user); + } + } + } + + clear(); +// experimentUsersListTable.resetList(); +// experimentUsersEditTable.resetList(); + return super.update(); + } + + public String getRemovedUserName() { if (experimentUsersEditTable.getCurrentObject() != null) { return experimentUsersEditTable.getCurrentObject().getUsername(); } @@ -396,13 +401,48 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper } public String removeUser() { - ExperimentUser user = experimentUsersEditTable.getCurrentObject(); - user.removeAllExperimentRoles(); - experimentUsers.remove(user); + + List<RoleType> roleTypesList = roleTypeFacade.findAll(); + ExperimentUser experimentUser = experimentUsersEditTable.getCurrentObject(); + UserInfo user = findUserInExperiment(experimentUser); + for (RoleType roleType : roleTypesList) { + int roleId = roleType.getId(); + if (experimentUser.roles[roleId]) { + user.removeExperimentRole(roleId, experimentUser.experimentId); + } + } + userInfoFacade.edit(user); clear(); return "edit?faces-redirect=true"; } - + + public void removeUserRoles() { + ExperimentUser experimentUser = experimentUsersEditTable.getCurrentObject(); + experimentUser.removeAllExperimentRoles(); + } + + public void updateRemovedExperimentRoles() { + List<RoleType> roleTypesList = roleTypeFacade.findAll(); + for (UserInfo user : experimentUsers.keySet()) { + ExperimentUser experimentUser = experimentUsers.get(user); + for (RoleType roleType : roleTypesList) { + int roleId = roleType.getId(); + if (!roleType.isIsSystemRole() && (!experimentUser.roles[roleId]) && (user.inRole(roleId, experimentUser.experimentId))) { + experimentUser.removeExperimentRole(roleId); + } + } + } + } + + private UserInfo findUserInExperiment(ExperimentUser experimentUser) { + for (UserInfo user : experimentUsers.keySet()) { + if (experimentUsers.get(user).equals(experimentUser)) { + return user; + } + } + return null; + } + public String addExperimentUser() { List<UserInfo> newUsers = noExperimentUsersTypeTable.getSelectedObjectList(); if (newUsers == null) { @@ -416,10 +456,11 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper UserExperimentRole userExperimentRole; for (UserInfo user : newUsers) { userExperimentRole = new UserExperimentRole(user.getId(), current.getId(), 4); // set the User - userExperimentRoleFacade.create(userExperimentRole); + user.getUserExperimentRoleList().add(userExperimentRole); + userInfoFacade.edit(user); } clear(); - return edit(); + return "edit?faces-redirect=true"; } catch (RuntimeException ex) { SessionUtility.addErrorMessage("Error", "Could not update UserInfo" + ": " + ex.getMessage()); return null; @@ -427,19 +468,8 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper } } - public boolean hasSystemRole(String user) { - RoleType rt; - rt = roleTypeFacade.findById(1); - if (rt == null) { - return false; - } - return rt.isAdmin(user); - } - - - @FacesConverter(forClass = Experiment.class) - public static class ExperimentControllerConverter implements Converter - { + @FacesConverter(forClass = Experiment.class) + public static class ExperimentControllerConverter implements Converter { @Override public Object getAsObject(FacesContext facesContext, UIComponent component, String value) { 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 08e577a0c106fa6a7247ea51f9a6ab4118908767..30da44d600024140833477af9f63207793f2b29e 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 @@ -5,7 +5,9 @@ */ package gov.anl.aps.dm.portal.controllers; +import gov.anl.aps.dm.portal.model.beans.RoleTypeFacade; import gov.anl.aps.dm.portal.model.beans.UserInfoFacade; +import gov.anl.aps.dm.portal.model.entities.RoleType; import gov.anl.aps.dm.portal.model.entities.UserInfo; import gov.anl.aps.dm.portal.utilities.LdapUtility; import gov.anl.aps.dm.portal.utilities.SessionUtility; @@ -28,6 +30,9 @@ public class LoginController implements Serializable @EJB private UserInfoFacade userInfoFacade; + @EJB + private RoleTypeFacade roleTypeFacade; + private String username = null; private String password = null; private boolean loggedIn = false; @@ -127,7 +132,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=\"http://www.anl.gov/employees/working-remotely/login-help\">Login Help</a> page."); + 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."); return (username = password = null); } @@ -172,4 +177,14 @@ public class LoginController implements Serializable return "/views/login?faces-redirect=true"; } + public boolean hasSystemRole() { + RoleType adminRoleType; + adminRoleType = roleTypeFacade.findById(1); + if (adminRoleType == null) { + return false; + } + return adminRoleType.isAdmin(username); + } + + } 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 22cd4d0981afa5c3f08ad8a6057b6cd80f069824..d4968403e1e8194d1bec51d5755f9f04e79fe804 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 @@ -117,15 +117,6 @@ public class UserSystemRoleController implements Serializable noSystemRoleTable.resetList(); } - public boolean hasSystemRole(String user) { - int id = Integer.parseInt(systemRoleId); - RoleType rt = roleTypeFacade.findById(id); - if (rt == null) { - return false; - } - return rt.isAdmin(user); - } - public String displayRole(String user) { // for now this method returns "Administrator" if user has this role, and "User" otherwise RoleType rt = roleTypeFacade.findById(1); diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/UserExperimentRolePK.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/UserExperimentRolePK.java index caf5c4892f4aa9e0f37e53912b60cbe67202c3c9..14efa81f800893b302081133f0e19f4011d88efa 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/UserExperimentRolePK.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/UserExperimentRolePK.java @@ -69,8 +69,8 @@ public class UserExperimentRolePK implements Serializable public int hashCode() { int hash = 0; hash += (int) userId; - hash += (int) experimentId; - hash += (int) roleTypeId; + hash += (int) experimentId * 100; + hash += (int) roleTypeId * 10000; return hash; } diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/UserInfo.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/UserInfo.java index ed24a143b02b4c7d42b5a6ad78231a2722d162cd..20815919201f38ded35d0f12c943c16db751392e 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/UserInfo.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/entities/UserInfo.java @@ -6,6 +6,7 @@ package gov.anl.aps.dm.portal.model.entities; +import java.util.ArrayList; import java.util.List; import javax.persistence.Basic; import javax.persistence.CascadeType; @@ -194,24 +195,41 @@ public class UserInfo extends CloneableEntity this.userSettingList = userSettingList; } - public boolean inRole(int roleId, int experimentId) { + public void removeExperimentRole(int roleId, int experimentId) { + UserExperimentRole roleToRemove = null; for (UserExperimentRole experimentRole : userExperimentRoleList) { - if ((experimentRole.getUserExperimentRolePK().getRoleTypeId() == roleId) && (experimentRole.getUserExperimentRolePK().getExperimentId() == experimentId)) - return true; + if ((experimentRole.getUserExperimentRolePK().getRoleTypeId() == roleId) && (experimentRole.getUserExperimentRolePK().getExperimentId() == experimentId)) { + roleToRemove = experimentRole; + break; + } + } + if (roleToRemove != null) { + userExperimentRoleList.remove(roleToRemove); } - return false; } - public void addUserExperimentRole(UserExperimentRole experimentRole) { - if (!inRole(experimentRole.getUserExperimentRolePK().getRoleTypeId(), experimentRole.getUserExperimentRolePK().getExperimentId())) { - userExperimentRoleList.add(experimentRole); - } + public void removeExperiment(int experimentId) { + List<UserExperimentRole> rolesToRemove = new ArrayList(); + for (UserExperimentRole userExperimentRole : userExperimentRoleList) { + if (userExperimentRole.getUserExperimentRolePK().getExperimentId() == experimentId) { + rolesToRemove.add(userExperimentRole); + } + } + for (UserExperimentRole userExperimentRole : rolesToRemove) { + userExperimentRoleList.remove(userExperimentRole); + } + } + + public void addUserExperimentRole(UserExperimentRole userExperimentRole) { + userExperimentRoleList.add(userExperimentRole); } - - public void removeUserExperimentRole(UserExperimentRole experimentRole) { - if (inRole(experimentRole.getUserExperimentRolePK().getRoleTypeId(), experimentRole.getUserExperimentRolePK().getExperimentId())) { - userExperimentRoleList.remove(experimentRole); + + public boolean inRole(int roleId, int experimentId) { + for (UserExperimentRole experimentRole : userExperimentRoleList) { + if ((experimentRole.getUserExperimentRolePK().getRoleTypeId() == roleId) && (experimentRole.getUserExperimentRolePK().getExperimentId() == experimentId)) + return true; } + return false; } @Override diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/tempstorage/ExperimentUser.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/tempstorage/ExperimentUser.java deleted file mode 100644 index 95ee79c6083c9618640cc9a6308bc9755b4d874d..0000000000000000000000000000000000000000 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/model/tempstorage/ExperimentUser.java +++ /dev/null @@ -1,132 +0,0 @@ -package gov.anl.aps.dm.portal.model.tempstorage; - -import gov.anl.aps.dm.portal.model.beans.UserExperimentRoleFacade; -import gov.anl.aps.dm.portal.model.entities.CloneableEntity; -import gov.anl.aps.dm.portal.model.entities.RoleType; -import gov.anl.aps.dm.portal.model.entities.UserExperimentRole; -import gov.anl.aps.dm.portal.model.entities.UserInfo; -import javax.ejb.EJB; - -/** - * - * @author bfrosik - */ -public class ExperimentUser extends CloneableEntity { - - @EJB - private UserExperimentRoleFacade userExperimentRoleFacade; - - String username; - String name; - int userId; - int experimentId; - private final boolean [] roles; - static int maxRoleId = 4; // this is hardcoded, should be determined from the RoleType data table. - // for now leave it hardcoded - -// Map<RoleType, Boolean> roles = new HashMap(); - - public ExperimentUser(int experimentId, int userId) { - roles = new boolean[maxRoleId+1]; - this.experimentId = experimentId; - this.userId = userId; - } - - public String getUsername() { - return username; - } - - public void setUsername(String username) { - this.username = username; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public boolean isIsManager() { - return roles[2]; - } - - public void setIsManager(boolean isManager) { - roles[2] = isManager; - if (isManager) { - UserExperimentRole userExperimentRole = new UserExperimentRole(userId, experimentId, 2); - userExperimentRoleFacade.create(userExperimentRole); - } else { - UserExperimentRole userExperimentRole = userExperimentRoleFacade.findByUserExperimentRole(userId, experimentId, 2); - userExperimentRoleFacade.remove(userExperimentRole); - } - } - - public boolean isIsPI() { - return roles[3]; - } - - public void setIsPI(boolean isPI) { - roles[3] = isPI; - if (isPI) { - UserExperimentRole userExperimentRole = new UserExperimentRole(userId, experimentId, 3); - userExperimentRoleFacade.create(userExperimentRole); - } else { - UserExperimentRole userExperimentRole = userExperimentRoleFacade.findByUserExperimentRole(userId, experimentId, 3); - userExperimentRoleFacade.remove(userExperimentRole); - } - } - - public boolean isIsUser() { - return roles[4]; - } - - public void setIsUser(boolean isUser) { - roles[4] = isUser; - if (isUser) { - UserExperimentRole userExperimentRole = new UserExperimentRole(userId, experimentId, 4); - userExperimentRoleFacade.create(userExperimentRole); - } else { - UserExperimentRole userExperimentRole = userExperimentRoleFacade.findByUserExperimentRole(userId, experimentId, 4); - userExperimentRoleFacade.remove(userExperimentRole); - } - } - - public void setIsInRole(RoleType role, boolean isInRole) { - roles[role.getId()] = isInRole; - } - - public boolean[] getRoles() { - return roles; - } - - public void removeAllExperimentRoles(UserExperimentRoleFacade userExperimentRoleFacade) { - UserExperimentRole userExperimentRole; - for (int i = 1; i <= maxRoleId; i++) { - if (roles[i]) { - userExperimentRole = userExperimentRoleFacade.findByUserExperimentRole(userId, experimentId, i); - userExperimentRoleFacade.remove(userExperimentRole); - } - } - } - - public boolean canAddUsers() { - return roles[2] || roles[3]; - } - - @Override - public int hashCode() { - return username.hashCode(); - } - - @Override - public boolean equals(Object object) { - // TODO: Warning - this method won't work in the case the id fields are not set - if (!(object instanceof UserInfo)) { - return false; - } - return (username.equals(((ExperimentUser)object).username)); - } - -} diff --git a/src/java/DmWebPortal/web/resources/css/login.css b/src/java/DmWebPortal/web/resources/css/login.css index f96530e8b190bebdf88696ccc31d47dd316a6855..1b5bebfd53903c550c6516cd198fc9b057050ae7 100644 --- a/src/java/DmWebPortal/web/resources/css/login.css +++ b/src/java/DmWebPortal/web/resources/css/login.css @@ -121,6 +121,17 @@ h1 { vertical-align: middle; } +.pageTitle h2 { + font-family: Arial, "Arial CE", "Lucida Grande CE", lucida, "Helvetica CE", sans-serif; + font-size: 20px; + font-weight: bold; + margin: 0px; + padding-bottom: 40px; + color: #4e80b6; + vertical-align: middle; + text-align: left; +} + .sectionText { font-size: 14px; font-weight: normal; diff --git a/src/java/DmWebPortal/web/views/experiment/edit.xhtml b/src/java/DmWebPortal/web/views/experiment/edit.xhtml index bceb961bc2ae038ed0d32628cbbe57b99ec85e6d..7ca74d86d81f313d931a36b987b4a377ad957c43 100644 --- a/src/java/DmWebPortal/web/views/experiment/edit.xhtml +++ b/src/java/DmWebPortal/web/views/experiment/edit.xhtml @@ -31,7 +31,7 @@ <p/> <div class="actionButton"> - <p:commandButton action="#{experimentController.update()}" value="Save" alt="Save" icon="ui-icon-check"/> + <p:commandButton action="#{experimentController.update()}" actionListener="#{experimentController.updateRemovedExperimentRoles()}" value="Save" alt="Save" icon="ui-icon-check"/> <p:commandButton action="#{experimentController.prepareList()}" immediate="true" value="Return" alt="Return" icon="ui-icon-arrowreturnthick-1-w"/> </div> diff --git a/src/java/DmWebPortal/web/views/experiment/experimentUserRemoveDialog.xhtml b/src/java/DmWebPortal/web/views/experiment/experimentUserRemoveDialog.xhtml index 28e5c19c11dcfdee0032d6601dc49295c43f6d4b..303a8f3b9bd9357d47da313f58bf3e1510d9fe01 100644 --- a/src/java/DmWebPortal/web/views/experiment/experimentUserRemoveDialog.xhtml +++ b/src/java/DmWebPortal/web/views/experiment/experimentUserRemoveDialog.xhtml @@ -7,7 +7,7 @@ <p:confirmDialog id="experimentUserRemoveDialog" message="Remove user #{experimentController.getRemovedUserName()} from Experiment?" header="Remove User" severity="alert" widgetVar="experimentUserRemoveDialogWidget" styleClass="dialog"> - <p:commandButton value="Yes" oncomplete="PF('experimentUserRemoveDialogWidget').hide()" action="#{experimentController.removeUser()}" update="@form"/> + <p:commandButton value="Yes" oncomplete="PF('experimentUserRemoveDialogWidget').hide()" actionListener="#{experimentController.removeUserRoles()}" action="#{experimentController.removeUser()}" update="@form"/> <p:commandButton value="No" onclick="PF('experimentUserRemoveDialogWidget').hide()" type="button" /> </p:confirmDialog> </ui:composition> diff --git a/src/java/DmWebPortal/web/views/experiment/experimentUsersEditDataTable.xhtml b/src/java/DmWebPortal/web/views/experiment/experimentUsersEditDataTable.xhtml index c66760b41efb00da69ab958bd3a61e7126f21ade..dacb92decbc84420728170b7c3d800bcbdb62c3d 100644 --- a/src/java/DmWebPortal/web/views/experiment/experimentUsersEditDataTable.xhtml +++ b/src/java/DmWebPortal/web/views/experiment/experimentUsersEditDataTable.xhtml @@ -41,7 +41,7 @@ <h:outputText value="#{experimentUserObject.name}"/> </p:column> - <ui:param name="isAdmin" value="#{experimentController.hasSystemRole(loginController.username)}" /> + <ui:param name="isAdmin" value="#{loginController.hasSystemRole()}" /> <p:column headerText="Manager"> <h:outputText value="" styleClass="ui-icon ui-icon-check" rendered="#{experimentUserObject.isManager} AND #{!isAdmin}" /> <p:selectBooleanCheckbox value="#{experimentUserObject.isManager}" rendered="#{isAdmin}" immediate="true" /> diff --git a/src/java/DmWebPortal/web/views/loginHelp.xhtml b/src/java/DmWebPortal/web/views/loginHelp.xhtml new file mode 100644 index 0000000000000000000000000000000000000000..632ee17768b25a82a5d4a2d52d5f2635bff94944 --- /dev/null +++ b/src/java/DmWebPortal/web/views/loginHelp.xhtml @@ -0,0 +1,74 @@ +<!--<?xml version='1.0' encoding='UTF-8' ?>--> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<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> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <link href="../resources/css/login.css" rel="stylesheet" type="text/css" /> + <title>Data Management System Login</title> + + </h:head> + + <h:body> + <div id="top" class="topContent"> + <div id="topLeft" class="topLeftContent"> + <ui:insert name="topLeft"> + <h:graphicImage alt="ANL Logo" url="../resources/images/AnlLogo167x75.png"/> + </ui:insert> + </div> + <div> + <div id="topRight" class="topRightContent"> + <ui:insert name="topRight"/> + </div> + <div id="topCenter" class="topCenterContent"> + <ui:insert name="topCenter"> + <h1>Data Management System Portal</h1> + </ui:insert> + </div> + </div> + </div> + + <div id="middle" class="middleContent"> + <p/> + <div class="pageTitle"> + <h2>Data Management Portal Login Help</h2> + </div> + </div> + + <div id="bottom" class="sectionText"> + Login Help + <p/> + + SharePoint + <p/> + Are you remembering to enter your username like this: anl\username? The "anl\" prefix is required. + + <p/> + + Internet Explorer + <p/> + If your Argonne account has been renamed (that is, your username has been changed), and you are using Internet Explorer as your browser, you may need to delete an existing, outdated security certificate as follows: + <p/> + In Internet Explorer, go to Tools -> Internet Options -> Content -> Certificates -> Personal. + <p/> + Select the certificate with the old username (issued by ANLIssuingCAv010) and click the "Remove" button. + <p/> + Clear the browser cache, close all browser windows, and restart the browser. + <p/> + Firefox + <p/> + In Firefox, clear the browser cache and cookies, close all browser windows, and restart the browser. + + <p/> + Password Problems + <p/> + Passwords can be changed and reset, and accounts can be unlocked via a set of self-service tools available online. + + </div> + </h:body> + +</html> diff --git a/src/java/DmWebPortal/web/views/userSystemRole/list.xhtml b/src/java/DmWebPortal/web/views/userSystemRole/list.xhtml index ac62d9b47c816db0745216ee9d7e69ca71769abe..24c87376d0eec0639936d8cfe8d7de72c783d567 100644 --- a/src/java/DmWebPortal/web/views/userSystemRole/list.xhtml +++ b/src/java/DmWebPortal/web/views/userSystemRole/list.xhtml @@ -16,7 +16,7 @@ <h:form id="adminListForm"> <div class="actionButton"> - <p:commandButton id="systemRoleAddButton" value="Add" onclick="PF('systemRoleAddDialogWidget').show();" rendered="#{userSystemRoleController.hasSystemRole(loginController.username)}" icon="ui-icon-plus" > + <p:commandButton id="systemRoleAddButton" value="Add" onclick="PF('systemRoleAddDialogWidget').show();" rendered="#{loginController.hasSystemRole()}" icon="ui-icon-plus" > <p:tooltip for="systemRoleAddButton" value="Add new Administrators."/> </p:commandButton> diff --git a/src/java/DmWebPortal/web/views/userSystemRole/systemRoleListDataTable.xhtml b/src/java/DmWebPortal/web/views/userSystemRole/systemRoleListDataTable.xhtml index b713cde16bfd61d4a53e264751e44594fc016fbd..9dc1610a1aaeb8c695d1ce6de30cd93c6093e8bc 100644 --- a/src/java/DmWebPortal/web/views/userSystemRole/systemRoleListDataTable.xhtml +++ b/src/java/DmWebPortal/web/views/userSystemRole/systemRoleListDataTable.xhtml @@ -46,7 +46,7 @@ <p:column headerText="Actions" > <div class="actionLink" > - <p:commandLink oncomplete="PF('systemRoleRemoveDialogWidget').show()" rendered="#{userSystemRoleController.hasSystemRole(loginController.username) and (loginController.username != systemUserObject.username)}" styleClass="ui-icon ui-icon-trash" title="Remove" update="@form" > + <p:commandLink oncomplete="PF('systemRoleRemoveDialogWidget').show()" rendered="#{loginController.hasSystemRole() and (loginController.username != systemUserObject.username)}" styleClass="ui-icon ui-icon-trash" title="Remove" update="@form" > <f:setPropertyActionListener value="#{systemUserObject}" target="#{userSystemRoleController.systemRoleTable.currentObject}" /> </p:commandLink> </div>