From b8a612f56602233b8096e21a1b761641796e4af3 Mon Sep 17 00:00:00 2001 From: "Barbara B. Frosik" <bfrosik@aps.anl.gov> Date: Mon, 8 Dec 2014 20:58:55 +0000 Subject: [PATCH] --- .../controllers/CrudEntityController.java | 8 ++++- .../controllers/ExperimentController.java | 29 ++++++++++++------- .../controllers/ExperimentTypeController.java | 12 ++++---- .../portal/controllers/LoginController.java | 4 --- .../controllers/RoleTypeController.java | 13 +++++---- .../controllers/UserInfoController.java | 17 +++++------ .../controllers/UserSystemRoleController.java | 14 +++++++++ .../templates/contentViewTemplate4x3.xhtml | 2 +- 8 files changed, 63 insertions(+), 36 deletions(-) diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/CrudEntityController.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/CrudEntityController.java index ccf292ef..cf0d0a28 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/CrudEntityController.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/CrudEntityController.java @@ -195,11 +195,17 @@ public abstract class CrudEntityController<EntityType extends CloneableEntity, F current = updatedEntity; return view(); } - catch (DmPortalException | RuntimeException ex) { + catch (DmPortalException ex) { SessionUtility.addErrorMessage("Error", "Could not update " + getDisplayEntityTypeName() + ": " + ex.getMessage()); return null; } + catch (RuntimeException ex) { + SessionUtility.addErrorMessage("Error", "Could not update " + getDisplayEntityTypeName() + ": " + getObjectAlreadyExistMessage(current)); + return null; + } } + + abstract protected String getObjectAlreadyExistMessage(EntityType entity); public void destroy(EntityType entity) { current = entity; 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 abf97ffe..9e5f03be 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 @@ -65,29 +65,36 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper @Override public void prepareEntityInsert(Experiment experiment) throws ObjectAlreadyExists, InvalidDate, MissingProperty { - verifyExperiment(experiment); - logger.debug("Inserting new experiment " + experiment.getName()); + Experiment existingExperiment = experimentFacade.findByName(experiment.getName()); + if (existingExperiment != null) { + throw new ObjectAlreadyExists("Experiment " + experiment.getName() + " already exists."); + } + + verifyExperiment(experiment); + logger.debug("Inserting new experiment " + experiment.getName()); } @Override - public void prepareEntityUpdate(Experiment experiment) throws ObjectAlreadyExists, InvalidDate, MissingProperty { + public void prepareEntityUpdate(Experiment experiment) throws DmPortalException { verifyExperiment(experiment); logger.debug("Updating experiment " + experiment.getName()); } - private void verifyExperiment(Experiment experiment) throws ObjectAlreadyExists, InvalidDate, MissingProperty { - Experiment existingExperiment = experimentFacade.findByName(experiment.getName()); - if (existingExperiment != null) { - throw new ObjectAlreadyExists("Experiment " + experiment.getName() + " already exists."); + @Override + protected String getObjectAlreadyExistMessage(Experiment experiment) { + if (experiment == null) + return null; + return "Experiment " + experiment.getName() + " already exists."; + } + + private void verifyExperiment(Experiment experiment) throws InvalidDate, MissingProperty { + if (experiment.getExperimentType() == null) { + throw new MissingProperty("Experiment Type is missing."); } if ((experiment.getStartDate() != null) && (experiment.getEndDate() != null) && (experiment.getEndDate().before(experiment.getStartDate()))) { throw new InvalidDate("Experiment end date is before start date."); } - - if (experiment.getExperimentType() == null) { - throw new MissingProperty("Experiment Type is missing."); - } } diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/ExperimentTypeController.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/ExperimentTypeController.java index a0b3eecb..e8545915 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/ExperimentTypeController.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/ExperimentTypeController.java @@ -72,12 +72,14 @@ public class ExperimentTypeController extends CrudEntityController<ExperimentTyp @Override public void prepareEntityUpdate(ExperimentType experimentType) throws DmPortalException { - ExperimentType existingExperimentType = experimentTypeFacade.findByName(experimentType.getName()); - if (existingExperimentType != null) { - throw new ObjectAlreadyExists("Experiment type " + experimentType.getName() + " already exists."); - } } - + + @Override + protected String getObjectAlreadyExistMessage(ExperimentType experimentType) { + if (experimentType == null) + return null; + return "Experiment Type " + experimentType.getName() + " already exists."; + } @FacesConverter(forClass = ExperimentType.class) public static class ExperimentTypeControllerConverter implements Converter 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 df521f94..8f1c34f5 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 @@ -150,10 +150,6 @@ public class LoginController implements Serializable } } - public String displayRole() { - return "User"; - } - public boolean isUserWriteable(UserInfo user) { if (!isLoggedIn()) { return false; diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/RoleTypeController.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/RoleTypeController.java index 5e29cde8..8e444f69 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/RoleTypeController.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/RoleTypeController.java @@ -4,7 +4,6 @@ import gov.anl.aps.dm.portal.exceptions.DmPortalException; import gov.anl.aps.dm.portal.exceptions.ObjectAlreadyExists; import gov.anl.aps.dm.portal.model.beans.RoleTypeFacade; import gov.anl.aps.dm.portal.model.entities.RoleType; -import gov.anl.aps.dm.portal.utilities.SessionUtility; import java.util.ArrayList; import java.util.List; import javax.ejb.EJB; @@ -77,12 +76,16 @@ public class RoleTypeController extends CrudEntityController<RoleType, RoleTypeF @Override public void prepareEntityUpdate(RoleType roleType) throws DmPortalException { - RoleType existingRoleType = roleTypeFacade.findByName(roleType.getName()); - if (existingRoleType != null) { - throw new ObjectAlreadyExists("Role Type " + roleType.getName() + " already exists."); - } } + @Override + protected String getObjectAlreadyExistMessage(RoleType roleType) { + if (roleType == null) + return null; + return "Role Type " + roleType.getName() + " already exists."; + } + + public boolean isRoleSystemType(String name) { if (name == null) { logger.warn("Current row is not set"); diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/UserInfoController.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/UserInfoController.java index d83fca3e..1e6b0f00 100644 --- a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/UserInfoController.java +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/controllers/UserInfoController.java @@ -1,14 +1,10 @@ package gov.anl.aps.dm.portal.controllers; import gov.anl.aps.dm.portal.exceptions.DmPortalException; -import gov.anl.aps.dm.portal.exceptions.InvalidDate; -import gov.anl.aps.dm.portal.exceptions.MissingProperty; import gov.anl.aps.dm.portal.exceptions.ObjectAlreadyExists; import gov.anl.aps.dm.portal.model.entities.UserInfo; import gov.anl.aps.dm.portal.model.beans.UserInfoFacade; -import gov.anl.aps.dm.portal.model.entities.Experiment; import gov.anl.aps.dm.portal.utilities.SessionUtility; -import java.util.ArrayList; import java.util.List; import javax.ejb.EJB; @@ -79,18 +75,21 @@ public class UserInfoController extends CrudEntityController<UserInfo, UserInfoF } @Override - public void prepareEntityUpdate(UserInfo user) throws ObjectAlreadyExists { + public void prepareEntityUpdate(UserInfo user) throws DmPortalException { if (passwordEntry != null && !passwordEntry.isEmpty()) { user.setPassword(passwordEntry); } passwordEntry = null; + } - UserInfo existingUserInfo = userInfoFacade.findByUsername(user.getUsername()); - if (existingUserInfo != null) { - throw new ObjectAlreadyExists("User " + user.getUsername() + " already exists."); - } + @Override + protected String getObjectAlreadyExistMessage(UserInfo user) { + if (user == null) + return null; + return "User " + user.getUsername() + " already exists."; } + public String prepareSessionUserEdit(String viewPath) { UserInfo sessionUser = (UserInfo) SessionUtility.getUser(); if (sessionUser == null) { 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 1851c94a..1f965aa8 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 @@ -128,6 +128,20 @@ public class UserSystemRoleController implements Serializable 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); + if (rt == null) { + return null; + } + if (rt.isAdmin(user)) { + return "Administrator"; + } + else { + return "User"; + } + } + public String prepareSystemRoleView() { logger.debug("Preparing system role view"); noSystemRoleTable.resetList(); diff --git a/src/java/DmWebPortal/web/templates/contentViewTemplate4x3.xhtml b/src/java/DmWebPortal/web/templates/contentViewTemplate4x3.xhtml index 93ea6422..b8b399bd 100644 --- a/src/java/DmWebPortal/web/templates/contentViewTemplate4x3.xhtml +++ b/src/java/DmWebPortal/web/templates/contentViewTemplate4x3.xhtml @@ -28,7 +28,7 @@ <h:outputText value="Username: #{loginController.displayUsername()}"/> <br/> - <h:outputText value="Role: #{loginController.displayRole()}"/> + <h:outputText value="Role: #{userSystemRoleController.displayRole(loginController.username)}"/> </ui:insert> </div> -- GitLab