Skip to content
Snippets Groups Projects
Commit a14732f4 authored by Barbara B. Frosik's avatar Barbara B. Frosik
Browse files

No commit message

No commit message
parent acaf3020
No related branches found
No related tags found
No related merge requests found
Showing
with 104 additions and 57 deletions
......@@ -65,6 +65,9 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper
@Override
public void prepareEntityInsert(Experiment experiment) throws ObjectAlreadyExists, InvalidDate, MissingProperty {
if ((experiment.getName() == null) || (experiment.getName().length() == 0)){
throw new MissingProperty("Experiment name is missing.");
}
Experiment existingExperiment = experimentFacade.findByName(experiment.getName());
if (existingExperiment != null) {
throw new ObjectAlreadyExists("Experiment " + experiment.getName() + " already exists.");
......@@ -76,6 +79,9 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper
@Override
public void prepareEntityUpdate(Experiment experiment) throws DmPortalException {
if ((experiment.getName() == null) || (experiment.getName().length() == 0)) {
throw new MissingProperty("Experiment name is missing.");
}
verifyExperiment(experiment);
logger.debug("Updating experiment " + experiment.getName());
}
......
package gov.anl.aps.dm.portal.controllers;
import gov.anl.aps.dm.portal.exceptions.DmPortalException;
import gov.anl.aps.dm.portal.exceptions.MissingProperty;
import gov.anl.aps.dm.portal.exceptions.ObjectAlreadyExists;
import gov.anl.aps.dm.portal.model.entities.ExperimentType;
import gov.anl.aps.dm.portal.model.beans.ExperimentTypeFacade;
......@@ -62,7 +63,10 @@ public class ExperimentTypeController extends CrudEntityController<ExperimentTyp
}
@Override
public void prepareEntityInsert(ExperimentType experimentType) throws ObjectAlreadyExists {
public void prepareEntityInsert(ExperimentType experimentType) throws ObjectAlreadyExists, MissingProperty {
if ((experimentType.getName() == null) || (experimentType.getName().length() == 0)) {
throw new MissingProperty("Name is missing.");
}
ExperimentType existingExperimentType = experimentTypeFacade.findByName(experimentType.getName());
if (existingExperimentType != null) {
throw new ObjectAlreadyExists("Experiment type " + experimentType.getName() + " already exists.");
......@@ -72,6 +76,9 @@ public class ExperimentTypeController extends CrudEntityController<ExperimentTyp
@Override
public void prepareEntityUpdate(ExperimentType experimentType) throws DmPortalException {
if ((experimentType.getName() == null) || (experimentType.getName().length() == 0)) {
throw new MissingProperty("Name is missing.");
}
}
@Override
......
package gov.anl.aps.dm.portal.controllers;
import gov.anl.aps.dm.portal.exceptions.DmPortalException;
import gov.anl.aps.dm.portal.exceptions.MissingProperty;
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;
......@@ -19,11 +20,6 @@ import org.apache.log4j.Logger;
@SessionScoped
public class RoleTypeController extends CrudEntityController<RoleType, RoleTypeFacade>
{
private static final List<String> systemRoles = new ArrayList();
{
systemRoles.add("Administrator");
}
private static final Logger logger = Logger.getLogger(RoleTypeController.class.getName());
@EJB
......@@ -66,7 +62,10 @@ public class RoleTypeController extends CrudEntityController<RoleType, RoleTypeF
}
@Override
public void prepareEntityInsert(RoleType roleType) throws ObjectAlreadyExists {
public void prepareEntityInsert(RoleType roleType) throws ObjectAlreadyExists, MissingProperty {
if ((roleType.getName() == null) || (roleType.getName().length() == 0)) {
throw new MissingProperty("Name is missing.");
}
RoleType existingRoleType = roleTypeFacade.findByName(roleType.getName());
if (existingRoleType != null) {
throw new ObjectAlreadyExists("Role Type " + roleType.getName() + " already exists.");
......@@ -76,7 +75,10 @@ public class RoleTypeController extends CrudEntityController<RoleType, RoleTypeF
@Override
public void prepareEntityUpdate(RoleType roleType) throws DmPortalException {
}
if ((roleType.getName() == null) || (roleType.getName().length() == 0)) {
throw new MissingProperty("Name is missing.");
}
}
@Override
protected String getObjectAlreadyExistMessage(RoleType roleType) {
......@@ -87,14 +89,14 @@ public class RoleTypeController extends CrudEntityController<RoleType, RoleTypeF
}
public boolean isRoleSystemType(String name) {
if (name == null) {
public boolean isRoleSystemType(RoleType roleType) {
if (roleType == null) {
logger.warn("Current row is not set");
// Do nothing if current item is not set.
return false;
}
return systemRoles.contains(name);
return roleType.isIsSystemRole();
}
@FacesConverter(forClass = RoleType.class)
......
package gov.anl.aps.dm.portal.controllers;
import gov.anl.aps.dm.portal.exceptions.DmPortalException;
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;
......@@ -66,7 +67,8 @@ public class UserInfoController extends CrudEntityController<UserInfo, UserInfoF
}
@Override
public void prepareEntityInsert(UserInfo user) throws ObjectAlreadyExists {
public void prepareEntityInsert(UserInfo user) throws ObjectAlreadyExists, MissingProperty{
verifyMandatoryParam(user);
UserInfo existingUser = userInfoFacade.findByUsername(user.getUsername());
if (existingUser != null) {
throw new ObjectAlreadyExists("User " + user.getUsername() + " already exists.");
......@@ -74,8 +76,40 @@ public class UserInfoController extends CrudEntityController<UserInfo, UserInfoF
logger.debug("Inserting new user " + user.getUsername());
}
private void verifyMandatoryParam(UserInfo user) throws MissingProperty {
int missing = 0;
if ((user.getUsername() == null) || (user.getUsername().length() == 0)) {
missing = 1;
}
if ((user.getLastName() == null) || (user.getLastName().length() == 0)) {
missing += 2;
}
if ((user.getFirstName() == null) || (user.getFirstName().length() == 0)) {
missing += 4;
}
if (missing > 0) {
switch (missing) {
case 7:
throw new MissingProperty("Username, last name, and first name are missing.");
case 6:
throw new MissingProperty("last name, and first name are missing.");
case 5:
throw new MissingProperty("Username and first name are missing.");
case 4:
throw new MissingProperty("first name is missing.");
case 3:
throw new MissingProperty("Username and last name are missing.");
case 2:
throw new MissingProperty("last name is missing.");
case 1:
throw new MissingProperty("Username is missing.");
}
}
}
@Override
public void prepareEntityUpdate(UserInfo user) throws DmPortalException {
verifyMandatoryParam(user);
if (passwordEntry != null && !passwordEntry.isEmpty()) {
user.setPassword(passwordEntry);
}
......
......@@ -52,7 +52,7 @@ public class Experiment extends CloneableEntity
private Integer id;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 2147483647)
@Size(max = 64)
@Column(name = "name")
private String name;
@Size(max = 2147483647)
......
......@@ -45,7 +45,7 @@ public class ExperimentType extends CloneableEntity
private Integer id;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 2147483647)
@Size(max = 64)
@Column(name = "name")
private String name;
@Size(max = 2147483647)
......
......@@ -48,13 +48,16 @@ public class RoleType extends CloneableEntity
private Integer id;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 2147483647)
@Size(max = 64)
@Column(name = "name")
private String name;
@Size(max = 2147483647)
@Column(name = "description")
private String description;
@JoinTable(name = "user_role", joinColumns = {
@NotNull
@Column(name = "is_system_role")
private boolean isSystemRole;
@JoinTable(name = "user_system_role", joinColumns = {
@JoinColumn(name = "role_type_id", referencedColumnName = "id")}, inverseJoinColumns = {
@JoinColumn(name = "user_id", referencedColumnName = "id")})
@ManyToMany
......@@ -98,6 +101,15 @@ public class RoleType extends CloneableEntity
this.description = description;
}
public boolean isIsSystemRole() {
return isSystemRole;
}
public void setIsSystemRole(boolean isSystemRole) {
this.isSystemRole = isSystemRole;
}
@XmlTransient
public List<UserInfo> getUserInfoList() {
return userInfoList;
......
......@@ -58,25 +58,25 @@ public class UserInfo extends CloneableEntity
private String username;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 2147483647)
@Size(max = 64)
@Column(name = "first_name")
private String firstName;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 2147483647)
@Size(max = 64)
@Column(name = "last_name")
private String lastName;
@Size(max = 2147483647)
@Size(max = 64)
@Column(name = "middle_name")
private String middleName;
// @Pattern(regexp="[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?", message="Invalid email")//if the field contains email address consider using this annotation to enforce field validation
@Size(max = 2147483647)
@Column(name = "email")
private String email;
@Size(max = 2147483647)
@Size(max = 120)
@Column(name = "description")
private String description;
@Size(max = 2147483647)
@Size(max = 64)
@Column(name = "password")
private String password;
@ManyToMany(mappedBy = "userInfoList")
......
jQuery(document).ready(function() {
PF('experimentListWidget').filter();
});
jQuery(document).ready(function() {
PF('experimentTypeListWidget').filter();
});
......@@ -8,28 +8,28 @@
<ui:param name="experimentObject" value="#{experimentController.selected}"/>
<p:panelGrid columns="2" styleClass="createEntityDetails">
<p:panelGrid columns="2" >
<h:outputLabel for="name" value="Name" styleClass="entityDataEmphasizedLabel"/>
<h:inputText id="name" value="#{experimentObject.name}" title="Name" required="true" styleClass="entityDataEmphasizedText"/>
<h:inputText id="name" value="#{experimentObject.name}" title="Name" styleClass="entityDataEmphasizedText"/>
<h:outputLabel for="experimentType" value="Experiment Type" styleClass="entityDataLabel"/>
<p:selectOneMenu id="experimentType" value="#{experimentObject.experimentType}" styleClass="entityDataText">
<f:selectItem itemLabel="Select Type" itemValue="" noSelectionOption="true" />
<f:selectItems value="#{experimentTypeController.getAvailableItems()}"
var="n"
itemValue="#{n}"
itemLabel="#{n.name}"/>
var="experimentType"
itemValue="#{experimentType}"
itemLabel="#{experimentType.name}"/>
</p:selectOneMenu>
<h:outputLabel for="description" value="Description" styleClass="entityDataLabel"/>
<h:inputText id="description" value="#{experimentObject.description}" title="Description" styleClass="entityDataText"/>
<h:outputLabel for="startDate" value="Start Date" styleClass="entityDataLabel"/>
<p:calendar id="startDate" value="#{experimentObject.startDate}" />
<p:calendar id="startDate" value="#{experimentObject.startDate}" mode="popup" showOn="button" />
<h:outputLabel for="endDate" value="End Date" styleClass="entityDataLabel"/>
<p:calendar id="endDate" value="#{experimentObject.endDate}" />
<h:outputLabel for="endDate" value="End Date" />
<p:calendar id="endDate" value="#{experimentObject.endDate}" mode="popup" showOn="button" />
</p:panelGrid>
......
......@@ -9,10 +9,10 @@
<ui:param name="experimentObject" value="#{experimentController.selected}"/>
<ui:param name="isFieldWriteable" value="#{loginController.loggedIn}"/>
<p:panelGrid columns="2" styleClass="editEntityDetails">
<p:panelGrid columns="2" >
<h:outputLabel for="name" value="Name" styleClass="entityDataEmphasizedLabel"/>
<h:inputText id="name" value="#{experimentObject.name}" title="Name" required="true" styleClass="entityDataEmphasizedText"/>
<h:inputText id="name" value="#{experimentObject.name}" title="Name" styleClass="entityDataEmphasizedText"/>
<h:outputLabel for="id" value="Id" styleClass="entityDataLabel"/>
<h:outputText id="id" value="#{experimentObject.id}" title="Id" styleClass="entityDataText"/>
......@@ -21,19 +21,19 @@
<p:selectOneMenu id="experimentType" value="#{experimentObject.experimentType}" styleClass="entityDataText">
<f:selectItem itemLabel="Select Type" itemValue="" noSelectionOption="true" />
<f:selectItems value="#{experimentTypeController.getAvailableItems()}"
var="n"
itemValue="#{n}"
itemLabel="#{n.name}"/>
var="experimentType"
itemValue="#{experimentType}"
itemLabel="#{experimentType.name}"/>
</p:selectOneMenu>
<h:outputLabel for="description" value="Description" styleClass="entityDataLabel"/>
<h:inputText id="description" value="#{experimentObject.description}" title="Description" styleClass="entityDataText"/>
<h:outputLabel for="startDate" value="Start Date" styleClass="entityDataLabel"/>
<p:calendar id="startDate" value="#{experimentObject.startDate}" />
<p:calendar id="startDate" value="#{experimentObject.startDate}" mode="popup" showOn="button" />
<h:outputLabel for="endDate" value="End Date" styleClass="entityDataLabel"/>
<p:calendar id="endDate" value="#{experimentObject.endDate}" />
<p:calendar id="endDate" value="#{experimentObject.endDate}" mode="popup" showOn="button" />
</p:panelGrid>
</ui:composition>
......@@ -23,8 +23,6 @@
<ui:include src="experimentDestroyDialog.xhtml"/>
<h:outputScript library="js/experiment" name="list.filter.js" rendered="#{loginController.loggedIn}"/>
</h:form>
</ui:define>
......
......@@ -11,7 +11,7 @@
<p:panelGrid columns="2" styleClass="createEntityDetails">
<h:outputLabel for="name" value="Name" styleClass="entityDataEmphasizedLabel"/>
<h:inputText id="name" value="#{experimentTypeObject.name}" title="Name" required="true" styleClass="entityDataEmphasizedText"/>
<h:inputText id="name" value="#{experimentTypeObject.name}" title="Name" styleClass="entityDataEmphasizedText"/>
<h:outputLabel for="description" value="Description" styleClass="entityDataLabel"/>
<h:inputText id="description" value="#{experimentTypeObject.description}" title="Description" styleClass="entityDataText"/>
......
......@@ -10,7 +10,7 @@
<p:panelGrid columns="2" styleClass="editEntityDetails">
<h:outputLabel for="name" value="Name" styleClass="entityDataEmphasizedLabel"/>
<h:inputText id="name" value="#{experimentTypeObject.name}" title="Name" required="true" styleClass="entityDataEmphasizedText"/>
<h:inputText id="name" value="#{experimentTypeObject.name}" title="Name" styleClass="entityDataEmphasizedText"/>
<h:outputLabel for="id" value="Id" styleClass="entityDataLabel"/>
<h:outputText id="id" value="#{experimentTypeObject.id}" title="Id" styleClass="entityDataText"/>
......
......@@ -23,8 +23,6 @@
<ui:include src="experimentTypeDestroyDialog.xhtml"/>
<h:outputScript library="js/experimentType" name="list.filter.js" rendered="#{loginController.loggedIn}"/>
</h:form>
</ui:define>
......
......@@ -11,7 +11,7 @@
<p:panelGrid columns="2" styleClass="createEntityDetails">
<h:outputLabel for="name" value="Role Name" styleClass="entityDataEmphasizedLabel"/>
<h:inputText id="name" value="#{roleTypeObject.name}" title="Role Name" required="true" styleClass="entityDataEmphasizedText"/>
<h:inputText id="name" value="#{roleTypeObject.name}" title="Role Name" styleClass="entityDataEmphasizedText"/>
<h:outputLabel for="description" value="Description" styleClass="entityDataLabel"/>
<h:inputText id="description" value="#{roleTypeObject.description}" title="Description" styleClass="entityDataText"/>
......
......@@ -12,7 +12,7 @@
<p:panelGrid columns="2" styleClass="editEntityDetails">
<h:outputLabel for="name" value="Name" styleClass="entityDataEmphasizedLabel"/>
<h:inputText id="name" value="#{roleTypeObject.name}" title="Name" required="true" styleClass="entityDataEmphasizedText"/>
<h:inputText id="name" value="#{roleTypeObject.name}" title="Name" styleClass="entityDataEmphasizedText"/>
<h:outputLabel for="id" value="Id" styleClass="entityDataLabel"/>
<h:outputText id="id" value="#{roleTypeObject.id}" title="Id" styleClass="entityDataText"/>
......
......@@ -44,7 +44,7 @@
<f:setPropertyActionListener value="#{roleTypeObject}" target="#{roleTypeController.current}"/>
</p:commandLink>
<p:commandLink action="#{userSystemRoleController.prepareSystemRoleView()}" rendered="#{roleTypeController.isRoleSystemType(roleTypeObject.name)}" styleClass="ui-icon ui-icon-person" title="List All" >
<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}"/>
</p:commandLink>
</div>
......
......@@ -13,10 +13,10 @@
<h:inputText id="username" value="#{userInfoObject.username}" title="Username" styleClass="entityDataEmphasizedText"/>
<h:outputLabel for="lastName" value="Last Name" styleClass="entityDataLabel"/>
<h:inputText id="lastName" value="#{userInfoObject.lastName}" title="Last Name" required="true" styleClass="entityDataText"/>
<h:inputText id="lastName" value="#{userInfoObject.lastName}" title="Last Name" styleClass="entityDataText"/>
<h:outputLabel for="firstName" value="First Name" styleClass="entityDataLabel"/>
<h:inputText id="firstName" value="#{userInfoObject.firstName}" title="First Name" required="true" styleClass="entityDataText"/>
<h:inputText id="firstName" value="#{userInfoObject.firstName}" title="First Name" styleClass="entityDataText"/>
<h:outputLabel for="middleName" value="Middle Name" styleClass="entityDataLabel"/>
<h:inputText id="middleName" value="#{userInfoObject.middleName}" title="Middle Name" styleClass="entityDataText"/>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment