From 71d45c26a88500e82a2da40f67cfb43da8eb3e45 Mon Sep 17 00:00:00 2001 From: "Barbara B. Frosik" <bfrosik@aps.anl.gov> Date: Tue, 3 Feb 2015 17:58:53 +0000 Subject: [PATCH] --- .../controllers/ExperimentController.java | 73 ++++++++++++++----- .../portal/controllers/LoginController.java | 19 +++-- .../aps/dm/portal/utilities/DoubleKeyMap.java | 58 +++++++++++++++ .../common/commonListActionButtons.xhtml | 2 +- .../experiment/experimentListDataTable.xhtml | 4 +- .../experimentUsersEditDataTable.xhtml | 22 +++--- .../experimentTypeListDataTable.xhtml | 4 +- .../web/views/roleType/create.xhtml | 30 -------- .../DmWebPortal/web/views/roleType/list.xhtml | 9 ++- .../roleType/roleTypeDestroyDialog.xhtml | 13 ---- .../roleType/roleTypeListDataTable.xhtml | 17 ++--- .../userInfo/userInfoListDataTable.xhtml | 4 +- .../web/views/userSystemRole/list.xhtml | 2 +- .../systemRoleListDataTable.xhtml | 2 +- 14 files changed, 157 insertions(+), 102 deletions(-) create mode 100644 src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/utilities/DoubleKeyMap.java delete mode 100644 src/java/DmWebPortal/web/views/roleType/create.xhtml delete mode 100644 src/java/DmWebPortal/web/views/roleType/roleTypeDestroyDialog.xhtml 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 9cb7c6ae..d8861e22 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 @@ -15,6 +15,7 @@ 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.utilities.DoubleKeyMap; import gov.anl.aps.dm.portal.utilities.SessionUtility; import java.util.ArrayList; import java.util.HashMap; @@ -120,7 +121,7 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper } } } - + @Override public int hashCode() { return userId + experimentId * 100; @@ -150,15 +151,18 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper } List<ExperimentUser> convertExperimentUsers(List<UserInfo> list) { + if (!initialized) { + initializeRoleTypes(); + } logger.debug("converting ExperimentUser "); List<RoleType> roleTypes = roleTypeFacade.findByRoleSystemType(false); ExperimentUser experimentUser; for (UserInfo user : list) { - if ((experimentUser = experimentUsers.get(user)) == null) { + if ((experimentUser = experimentUsers.getByFirstKey(user)) == null) { experimentUser = new ExperimentUser(getCurrent().getId(), user.getId()); experimentUser.setUsername(user.getUsername()); experimentUser.setName(user.getLastName() + ", " + user.getFirstName()); - experimentUsers.put(user, experimentUser); + experimentUsers.put(user, user.getId(), experimentUser); } for (RoleType roleType : roleTypes) { boolean inRole = user.inRole(roleType.getId(), getCurrent().getId()); @@ -196,9 +200,11 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper private ExperimentController.ExperimentUsersTable experimentUsersListTable = new ExperimentController.ExperimentUsersTable(); private ExperimentController.ExperimentUsersTable experimentUsersEditTable = new ExperimentController.ExperimentUsersTable(); private ExperimentController.NoExperimentUsersTypeTable noExperimentUsersTypeTable = new ExperimentController.NoExperimentUsersTypeTable(); - final private Map<UserInfo, ExperimentUser> experimentUsers = new HashMap<>(); + final private DoubleKeyMap<UserInfo, Integer, ExperimentUser> experimentUsers = new DoubleKeyMap<>(); final private Map<String, RoleType> experimentRoles = new HashMap<>(); int maxExperimentRoleTypeId = 0; + boolean initialized = false; + private UserInfo loggedUser = null; public ExperimentController() { this.experimentUsersListTable = new ExperimentController.ExperimentUsersTable(); @@ -237,8 +243,8 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper @Override public String prepareEdit(Experiment experiment) { clear(); - if (maxExperimentRoleTypeId == 0) { - setMaxExperimentRoleTypeId(); + if (!initialized) { + initializeRoleTypes(); } return super.prepareEdit(experiment); } @@ -246,13 +252,10 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper @Override public String prepareView(Experiment experiment) { clear(); - if (maxExperimentRoleTypeId == 0) { - setMaxExperimentRoleTypeId(); - } return super.prepareView(experiment); } - private void setMaxExperimentRoleTypeId() { + private void initializeRoleTypes() { List<RoleType> roleTypesList = roleTypeFacade.findAll(); for (RoleType roleType : roleTypesList) { if (!roleType.isIsSystemRole()) { @@ -263,6 +266,7 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper } } maxExperimentRoleTypeId++; + initialized = true; } @Override @@ -341,8 +345,8 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper public void updateRemovedExperimentRoles() { UserExperimentRole userExperimentRole; - for (UserInfo user : experimentUsers.keySet()) { - ExperimentUser experimentUser = experimentUsers.get(user); + for (UserInfo user : experimentUsers.firstKeySet()) { + ExperimentUser experimentUser = experimentUsers.getByFirstKey(user); for (RoleType roleType : experimentRoles.values()) { int roleId = roleType.getId(); if ((!experimentUser.userRoles[roleId]) && (user.inRole(roleId, experimentUser.experimentId))) { @@ -358,9 +362,9 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper @Override public String update() { boolean updated; - for (UserInfo user : experimentUsers.keySet()) { + for (UserInfo user : experimentUsers.firstKeySet()) { updated = false; - ExperimentUser experimentUser = experimentUsers.get(user); + ExperimentUser experimentUser = experimentUsers.getByFirstKey(user); for (RoleType roleType : experimentRoles.values()) { if (!roleType.isIsSystemRole()) { int roleId = roleType.getId(); @@ -416,8 +420,8 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper } private UserInfo findUserInExperiment(ExperimentUser experimentUser) { - for (UserInfo user : experimentUsers.keySet()) { - if (experimentUsers.get(user).equals(experimentUser)) { + for (UserInfo user : experimentUsers.firstKeySet()) { + if (experimentUsers.getByFirstKey(user).equals(experimentUser)) { return user; } } @@ -448,7 +452,42 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper } } } - + + public boolean canEditExperiment(int userId, int experimentId) { + if (!initialized) { + initializeRoleTypes(); + } + // user that is Manager or PI can edit experiment + int managerRoleId = experimentRoles.get(RoleTypeName.MANAGER).getId(); + int piRoleId = experimentRoles.get(RoleTypeName.PI).getId(); + return ((userExperimentRoleFacade.findByUserExperimentRole(userId, experimentId, managerRoleId) != null) || + (userExperimentRoleFacade.findByUserExperimentRole(userId, experimentId, piRoleId) != null)); + } + + public boolean canDeleteExperiment(int userId, int experimentId) { + if (!initialized) { + initializeRoleTypes(); + } + // user that is Manager can delete experiment + return (userExperimentRoleFacade.findByUserExperimentRole(userId, experimentId, experimentRoles.get(RoleTypeName.MANAGER).getId()) != null); + } + + public boolean canAddManager(int userId) { + ExperimentUser logged = experimentUsers.getBySecondKey(userId); + if (logged == null) { + return false; + } + return logged.isIsManager(); + } + + public boolean canAddPiAndUser(int userId) { + ExperimentUser logged = experimentUsers.getBySecondKey(userId); + if (logged == null) { + return false; + } + return logged.isIsManager() || logged.isIsPI(); + } + @FacesConverter(forClass = Experiment.class) public static class ExperimentControllerConverter 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 9c3d6182..3852c260 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,6 +5,7 @@ */ package gov.anl.aps.dm.portal.controllers; +import gov.anl.aps.dm.portal.constants.RoleTypeName; 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; @@ -34,10 +35,11 @@ public class LoginController implements Serializable private RoleTypeFacade roleTypeFacade; private String username = null; + private int id; private String password = null; private boolean loggedIn = false; private UserInfo user = null; - int ADMIN_ROLE_ID = 1; + private boolean isAdmin; private static final Logger logger = Logger.getLogger(LoginController.class.getName()); @@ -83,6 +85,10 @@ public class LoginController implements Serializable this.username = username; } + public int getUserId() { + return id; + } + /** * Check if user is logged in. * @@ -129,6 +135,8 @@ public class LoginController implements Serializable loggedIn = true; SessionUtility.addInfoMessage("Successful Login", "User " + username + " is logged in."); + isAdmin = roleTypeFacade.findByName(RoleTypeName.ADMIN).isAdmin(username); + id = user.getId(); return getLandingPage(); } else { @@ -178,13 +186,8 @@ public class LoginController implements Serializable return "/views/login?faces-redirect=true"; } - public boolean hasSystemRole() { - RoleType adminRoleType; - adminRoleType = roleTypeFacade.findById(ADMIN_ROLE_ID); - if (adminRoleType == null) { - return false; - } - return adminRoleType.isAdmin(username); + public boolean isAdmin() { + return isAdmin; } diff --git a/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/utilities/DoubleKeyMap.java b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/utilities/DoubleKeyMap.java new file mode 100644 index 00000000..fe225e14 --- /dev/null +++ b/src/java/DmWebPortal/src/java/gov/anl/aps/dm/portal/utilities/DoubleKeyMap.java @@ -0,0 +1,58 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ + +package gov.anl.aps.dm.portal.utilities; + +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; + +/** + * + * @author bfrosik + * @param <K1> + * @param <K2> + * @param <E> + */ +public class DoubleKeyMap <K1, K2, E> { + private final Map<K1, E> map1 = new HashMap<>(); + private final Map<K2, E> map2 = new HashMap<>(); + + public void put(K1 key1, K2 key2, E value) { + map1.put(key1, value); + map2.put(key2, value); + } + + public E getByFirstKey(K1 key1) { + return map1.get(key1); + } + + public E getBySecondKey(K2 key2) { + return map2.get(key2); + } + + public void remove(K1 key1, K2 key2) { + map1.remove(key1); + map2.remove(key2); + } + + public Collection<E> values() { + return map1.values(); + } + + public Collection<K1> firstKeySet() { + return map1.keySet(); + } + + public Collection<K2> secondKeySet() { + return map2.keySet(); + } + + public void clear() { + map1.clear(); + map2.clear(); + } +} diff --git a/src/java/DmWebPortal/web/views/common/commonListActionButtons.xhtml b/src/java/DmWebPortal/web/views/common/commonListActionButtons.xhtml index d0e66f9b..3c3cc596 100644 --- a/src/java/DmWebPortal/web/views/common/commonListActionButtons.xhtml +++ b/src/java/DmWebPortal/web/views/common/commonListActionButtons.xhtml @@ -10,7 +10,7 @@ <ui:param name="entityTypeName" value="#{entityController.entityTypeName}"/> <div class="actionButton"> - <p:commandButton id="#{entityTypeName}AddButton" action="#{entityController.prepareCreate()}" rendered="#{loginController.loggedIn}" value="Add" alt="Add new #{entityTypeName}" icon="ui-icon-plus"> + <p:commandButton id="#{entityTypeName}AddButton" action="#{entityController.prepareCreate()}" rendered="#{loginController.admin}" value="Add" alt="Add new #{entityTypeName}" icon="ui-icon-plus"> <p:tooltip for="#{entityTypeName}AddButton" value="Create new #{entityController.displayEntityTypeName}."/> </p:commandButton> diff --git a/src/java/DmWebPortal/web/views/experiment/experimentListDataTable.xhtml b/src/java/DmWebPortal/web/views/experiment/experimentListDataTable.xhtml index 4893d7d5..30264fa0 100644 --- a/src/java/DmWebPortal/web/views/experiment/experimentListDataTable.xhtml +++ b/src/java/DmWebPortal/web/views/experiment/experimentListDataTable.xhtml @@ -58,10 +58,10 @@ <p:commandLink action="#{experimentController.prepareView(experimentObject)}" styleClass="ui-icon ui-icon-info" title="View"> </p:commandLink> - <p:commandLink action="#{experimentController.prepareEdit(experimentObject)}" rendered="#{loginController.loggedIn}" styleClass="ui-icon ui-icon-pencil" title="Edit"> + <p:commandLink action="#{experimentController.prepareEdit(experimentObject)}" rendered="#{loginController.admin or experimentController.canEditExperiment(loginController.userId, experimentObject.id)}" styleClass="ui-icon ui-icon-pencil" title="Edit"> </p:commandLink> - <p:commandLink oncomplete="PF('experimentDestroyDialogWidget').show()" rendered="#{loginController.loggedIn}" styleClass="ui-icon ui-icon-trash" title="Delete" update="@form"> + <p:commandLink oncomplete="PF('experimentDestroyDialogWidget').show()" rendered="#{loginController.admin or experimentController.canDeleteExperiment(loginController.userId, experimentObject.id)}" styleClass="ui-icon ui-icon-trash" title="Delete" update="@form"> <f:setPropertyActionListener value="#{experimentObject}" target="#{experimentController.current}"/> </p:commandLink> </div> diff --git a/src/java/DmWebPortal/web/views/experiment/experimentUsersEditDataTable.xhtml b/src/java/DmWebPortal/web/views/experiment/experimentUsersEditDataTable.xhtml index 6407d75a..cd6a59f3 100644 --- a/src/java/DmWebPortal/web/views/experiment/experimentUsersEditDataTable.xhtml +++ b/src/java/DmWebPortal/web/views/experiment/experimentUsersEditDataTable.xhtml @@ -10,7 +10,9 @@ <ui:include src="experimentUserAddDialog.xhtml" /> - <p:commandButton id="experimentUserAddButton" value="Add" onclick="PF('experimentUserAddDialogWidget').show();" rendered="#{loginController.hasSystemRole()}" icon="ui-icon-plus" > + <ui:param name="isAdmin" value="#{loginController.admin}" /> + + <p:commandButton id="experimentUserAddButton" value="Add" onclick="PF('experimentUserAddDialogWidget').show();" rendered="true" icon="ui-icon-plus" > <p:tooltip for="experimentUserAddButton" value="Add new users." /> </p:commandButton> @@ -29,7 +31,8 @@ widgetVar="experimentUsersEditWidget" emptyMessage="No users found."> - <ui:param name="experimentRoles" value="#{experimentUserObject.roles}" /> + <ui:param name="isManager" value="#{experimentController.canAddManager(loginController.userId)}" /> + <ui:param name="isPi" value="#{experimentController.canAddPiAndUser(loginController.userId)}" /> <p:column sortBy="#{experimentUserObject.username}" headerText="Username" filterBy="#{experimentUserObject.username}" filterMatchMode="contains" > @@ -41,24 +44,23 @@ <h:outputText value="#{experimentUserObject.name}"/> </p:column> - <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" /> + <h:outputText value="" styleClass="ui-icon ui-icon-check" rendered="#{experimentUserObject.isManager and !isAdmin and !isManager}" /> + <p:selectBooleanCheckbox value="#{experimentUserObject.isManager}" rendered="#{isAdmin or isManager}" immediate="true" /> </p:column> <p:column headerText="Principal Investigator"> - <h:outputText value="" styleClass="ui-icon ui-icon-check" rendered="#{experimentUserObject.isPI} AND #{!isAdmin}" /> - <p:selectBooleanCheckbox value="#{experimentUserObject.isPI}" rendered="#{isAdmin}" /> + <h:outputText value="" styleClass="ui-icon ui-icon-check" rendered="#{experimentUserObject.isPI and !isAdmin and !isPi}" /> + <p:selectBooleanCheckbox value="#{experimentUserObject.isPI}" rendered="#{isAdmin or isPi}" /> </p:column> <p:column headerText="User"> - <h:outputText value="" styleClass="ui-icon ui-icon-check" rendered="#{experimentUserObject.isUser} AND #{!isAdmin}" /> - <p:selectBooleanCheckbox value="#{experimentUserObject.isUser}" rendered="#{isAdmin}" /> + <h:outputText value="" styleClass="ui-icon ui-icon-check" rendered="#{experimentUserObject.isUser and !isAdmin and !isPi}" /> + <p:selectBooleanCheckbox value="#{experimentUserObject.isUser}" rendered="#{isAdmin or isPi}" /> </p:column> - <p:column headerText="Actions" rendered="#{isAdmin}"> + <p:column headerText="Actions" rendered="#{isAdmin or isManager}"> <div class="actionLink" > <p:commandLink oncomplete="PF('experimentUserRemoveDialogWidget').show()" rendered="true" styleClass="ui-icon ui-icon-trash" title="Remove" update="@form"> <f:setPropertyActionListener value="#{experimentUserObject}" target="#{experimentController.experimentUsersEditTable.currentObject}" /> diff --git a/src/java/DmWebPortal/web/views/experimentType/experimentTypeListDataTable.xhtml b/src/java/DmWebPortal/web/views/experimentType/experimentTypeListDataTable.xhtml index 48d053aa..626869df 100644 --- a/src/java/DmWebPortal/web/views/experimentType/experimentTypeListDataTable.xhtml +++ b/src/java/DmWebPortal/web/views/experimentType/experimentTypeListDataTable.xhtml @@ -40,8 +40,8 @@ <p:column headerText="Actions" > <div class="actionLink"> <p:commandLink action="#{experimentTypeController.prepareView(experimentTypeObject)}" styleClass="ui-icon ui-icon-info" title="View"/> - <p:commandLink action="#{experimentTypeController.prepareEdit(experimentTypeObject)}" rendered="#{loginController.loggedIn}" styleClass="ui-icon ui-icon-pencil" title="Edit"/> - <p:commandLink oncomplete="PF('experimentTypeDestroyDialogWidget').show()" rendered="#{loginController.loggedIn}" styleClass="ui-icon ui-icon-trash" title="Delete" update="@form"> + <p:commandLink action="#{experimentTypeController.prepareEdit(experimentTypeObject)}" rendered="#{loginController.admin}" styleClass="ui-icon ui-icon-pencil" title="Edit"/> + <p:commandLink oncomplete="PF('experimentTypeDestroyDialogWidget').show()" rendered="#{loginController.admin}" styleClass="ui-icon ui-icon-trash" title="Delete" update="@form"> <f:setPropertyActionListener value="#{experimentTypeObject}" target="#{experimentTypeController.current}"/> </p:commandLink> </div> diff --git a/src/java/DmWebPortal/web/views/roleType/create.xhtml b/src/java/DmWebPortal/web/views/roleType/create.xhtml deleted file mode 100644 index 5a30bfce..00000000 --- a/src/java/DmWebPortal/web/views/roleType/create.xhtml +++ /dev/null @@ -1,30 +0,0 @@ -<?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"> -<ui:composition xmlns="http://www.w3.org/1999/xhtml" - xmlns:h="http://java.sun.com/jsf/html" - xmlns:p="http://primefaces.org/ui" - xmlns:f="http://java.sun.com/jsf/core" - xmlns:ui="http://xmlns.jcp.org/jsf/facelets" - xmlns:c="http://xmlns.jcp.org/jsp/jstl/core" - template="../../templates/contentViewTemplate4x3.xhtml"> - - <ui:define name="middleCenter"> - <div class="pageTitle"> - <h1>Add Role</h1> - </div> - - <h:form id="addRoleTypeForm"> - - <ui:include src="roleTypeCreatePanelGrid.xhtml"/> - - <p/> - <div class="actionButton"> - <p:commandButton action="#{roleTypeController.create()}" value="Save" alt="Save" icon="ui-icon-check" update="@form"/> - <p:commandButton action="#{roleTypeController.prepareList()}" immediate="true" value="Cancel" alt="Cancel" icon="ui-icon-cancel"/> - </div> - </h:form> - - </ui:define> -</ui:composition> - - diff --git a/src/java/DmWebPortal/web/views/roleType/list.xhtml b/src/java/DmWebPortal/web/views/roleType/list.xhtml index 21e32813..73dcee27 100644 --- a/src/java/DmWebPortal/web/views/roleType/list.xhtml +++ b/src/java/DmWebPortal/web/views/roleType/list.xhtml @@ -15,14 +15,17 @@ <h:form id="viewRoleTypeListForm"> <ui:param name="entityController" value="#{roleTypeController}"/> - <ui:include src="../common/commonListActionButtons.xhtml"/> + + <div class="actionButton"> + <p:commandButton id="#{entityTypeName}ResetFiltersButton" action="#{entityController.resetList()}" alt="Clear Filters" icon="ui-icon-refresh" styleClass="actionButtonRight"> + <p:tooltip for="#{entityTypeName}ResetFiltersButton" value="Reset list filters."/> + </p:commandButton> + </div> <h:panelGroup> <ui:include src="roleTypeListDataTable.xhtml"/> </h:panelGroup> - <ui:include src="roleTypeDestroyDialog.xhtml"/> - </h:form> </ui:define> diff --git a/src/java/DmWebPortal/web/views/roleType/roleTypeDestroyDialog.xhtml b/src/java/DmWebPortal/web/views/roleType/roleTypeDestroyDialog.xhtml deleted file mode 100644 index 9bb96e2b..00000000 --- a/src/java/DmWebPortal/web/views/roleType/roleTypeDestroyDialog.xhtml +++ /dev/null @@ -1,13 +0,0 @@ -<?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"> -<ui:composition xmlns="http://www.w3.org/1999/xhtml" - xmlns:p="http://primefaces.org/ui" - xmlns:ui="http://xmlns.jcp.org/jsf/facelets"> - - <p:confirmDialog id="roleTypeDestroyDialog" message="Delete role #{roleTypeController.getCurrentEntityInstanceName()}?" - header="Delete RoleType" severity="alert" widgetVar="roleTypeDestroyDialogWidget" - styleClass="dialog"> - <p:commandButton value="Yes" oncomplete="roleTypeDestroyDialogWidget.hide()" action="#{roleTypeController.destroy()}"/> - <p:commandButton value="No" onclick="PF('roleTypeDestroyDialogWidget').hide()" type="button" /> - </p:confirmDialog> -</ui:composition> diff --git a/src/java/DmWebPortal/web/views/roleType/roleTypeListDataTable.xhtml b/src/java/DmWebPortal/web/views/roleType/roleTypeListDataTable.xhtml index d4172394..317b4027 100644 --- a/src/java/DmWebPortal/web/views/roleType/roleTypeListDataTable.xhtml +++ b/src/java/DmWebPortal/web/views/roleType/roleTypeListDataTable.xhtml @@ -32,23 +32,16 @@ filterBy="#{roleTypeObject.description}" filterMatchMode="contains"> <h:outputText value="#{roleTypeObject.description}"/> </p:column> - - <c:set var="isEntityWriteable" value="#{loginController.loggedIn}"/> - <p:column headerText="Actions" > <div class="actionLink"> <p:commandLink action="#{roleTypeController.prepareView(roleTypeObject)}" styleClass="ui-icon ui-icon-info" title="View"/> - <p:commandLink action="#{roleTypeController.prepareEdit(roleTypeObject)}" rendered="#{isEntityWriteable}" styleClass="ui-icon ui-icon-pencil" title="Edit"/> - <p:commandLink oncomplete="PF('roleTypeDestroyDialogWidget').show()" rendered="#{loginController.loggedIn}" styleClass="ui-icon ui-icon-trash" title="Delete" update="@form"> - <f:setPropertyActionListener value="#{roleTypeObject}" target="#{roleTypeController.current}"/> - </p:commandLink> - - <p:commandLink action="#{userSystemRoleController.prepareSystemRoleView()}" rendered="#{roleTypeController.isRoleSystemType(roleTypeObject)}" styleClass="ui-icon ui-icon-person" title="List All" > - <f:setPropertyActionListener value="#{roleTypeObject}" target="#{userSystemRoleController.systemRole}"/> + <p:commandLink action="#{roleTypeController.prepareEdit(roleTypeObject)}" rendered="#{loginController.admin}" styleClass="ui-icon ui-icon-pencil" title="Edit"/> + <p:commandLink action="#{userSystemRoleController.prepareSystemRoleView()}" rendered="#{roleTypeController.isRoleSystemType(roleTypeObject)}" styleClass="ui-icon ui-icon-person" title="List All" > + <f:setPropertyActionListener value="#{roleTypeObject}" target="#{userSystemRoleController.systemRole}"/> </p:commandLink> - </div> + </div> </p:column> </p:dataTable> - + </ui:composition> diff --git a/src/java/DmWebPortal/web/views/userInfo/userInfoListDataTable.xhtml b/src/java/DmWebPortal/web/views/userInfo/userInfoListDataTable.xhtml index 93bb73de..b75e01aa 100644 --- a/src/java/DmWebPortal/web/views/userInfo/userInfoListDataTable.xhtml +++ b/src/java/DmWebPortal/web/views/userInfo/userInfoListDataTable.xhtml @@ -55,8 +55,8 @@ <p:column headerText="Actions" > <div class="actionLink"> <p:commandLink action="#{userInfoController.prepareView(userInfoObject)}" styleClass="ui-icon ui-icon-info" title="View"/> - <p:commandLink action="#{userInfoController.prepareEdit(userInfoObject)}" rendered="#{loginController.isUserWriteable(userInfoObject)}" styleClass="ui-icon ui-icon-pencil" title="Edit"/> - <p:commandLink oncomplete="PF('userInfoDestroyDialogWidget').show()" rendered="#{loginController.loggedIn}" styleClass="ui-icon ui-icon-trash" title="Delete" update="@form"> + <p:commandLink action="#{userInfoController.prepareEdit(userInfoObject)}" rendered="#{loginController.admin}" styleClass="ui-icon ui-icon-pencil" title="Edit"/> + <p:commandLink oncomplete="PF('userInfoDestroyDialogWidget').show()" rendered="#{loginController.admin}" styleClass="ui-icon ui-icon-trash" title="Delete" update="@form"> <f:setPropertyActionListener value="#{userInfoObject}" target="#{userInfoController.current}"/> </p:commandLink> </div> diff --git a/src/java/DmWebPortal/web/views/userSystemRole/list.xhtml b/src/java/DmWebPortal/web/views/userSystemRole/list.xhtml index 24c87376..f23059ab 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="#{loginController.hasSystemRole()}" icon="ui-icon-plus" > + <p:commandButton id="systemRoleAddButton" value="Add" onclick="PF('systemRoleAddDialogWidget').show();" rendered="#{loginController.admin}" 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 9dc1610a..1312040b 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="#{loginController.hasSystemRole() and (loginController.username != systemUserObject.username)}" styleClass="ui-icon ui-icon-trash" title="Remove" update="@form" > + <p:commandLink oncomplete="PF('systemRoleRemoveDialogWidget').show()" rendered="#{loginController.admin 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> -- GitLab