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

No commit message

No commit message
parent b335420e
No related branches found
No related tags found
No related merge requests found
...@@ -7,7 +7,6 @@ import gov.anl.aps.dm.portal.exceptions.InvalidDate; ...@@ -7,7 +7,6 @@ import gov.anl.aps.dm.portal.exceptions.InvalidDate;
import gov.anl.aps.dm.portal.exceptions.MissingProperty; import gov.anl.aps.dm.portal.exceptions.MissingProperty;
import gov.anl.aps.dm.portal.model.entities.Experiment; 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.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.RoleTypeFacade;
import gov.anl.aps.dm.portal.model.beans.UserExperimentRoleFacade; import gov.anl.aps.dm.portal.model.beans.UserExperimentRoleFacade;
import gov.anl.aps.dm.portal.model.beans.UserInfoFacade; import gov.anl.aps.dm.portal.model.beans.UserInfoFacade;
...@@ -40,9 +39,6 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper ...@@ -40,9 +39,6 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper
@EJB @EJB
private ExperimentFacade experimentFacade; private ExperimentFacade experimentFacade;
@EJB
private ExperimentTypeFacade experimentTypeFacade;
@EJB @EJB
private UserInfoFacade userInfoFacade; private UserInfoFacade userInfoFacade;
...@@ -54,102 +50,95 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper ...@@ -54,102 +50,95 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper
public class ExperimentUser extends CloneableEntity { public class ExperimentUser extends CloneableEntity {
String username; String username;
String name; String name;
int userId; int userId;
int experimentId; int experimentId;
private final boolean [] roles; private final boolean[] roles;
public ExperimentUser(int experimentId, int userId) { public ExperimentUser(int experimentId, int userId) {
roles = new boolean[maxExperimentRoleTypeId]; roles = new boolean[maxExperimentRoleTypeId];
this.experimentId = experimentId; this.experimentId = experimentId;
this.userId = userId; this.userId = userId;
} }
public String getUsername() {
return username;
}
public void setUsername(String username) { public String getUsername() {
this.username = username; return username;
} }
public String getName() { public void setUsername(String username) {
return name; this.username = username;
} }
public void setName(String name) { public String getName() {
this.name = name; return name;
} }
public boolean isIsManager() { public void setName(String name) {
return roles[2]; this.name = name;
} }
public void setIsManager(boolean isManager) { public boolean isIsManager() {
logger.debug("setting Manager role for experiment "+ experimentId + " and user " + username + " to " + isManager); return roles[2];
roles[2] = isManager; }
}
public boolean isIsPI() { public void setIsManager(boolean isManager) {
return roles[3]; roles[2] = isManager;
} }
public void setIsPI(boolean isPI) { public boolean isIsPI() {
roles[3] = isPI; return roles[3];
} }
public boolean isIsUser() { public void setIsPI(boolean isPI) {
return roles[4]; roles[3] = isPI;
} }
public void setIsUser(boolean isUser) { public boolean isIsUser() {
roles[4] = isUser; return roles[4];
} }
public void setIsInRole(RoleType role, boolean isInRole) { public void setIsUser(boolean isUser) {
roles[role.getId()] = isInRole; roles[4] = isUser;
} }
public boolean[] getRoles() {
return roles;
}
public void removeAllExperimentRoles() {
UserExperimentRole userExperimentRole;
for (int i = 1; i <= 4; i++) {
if (roles[i]) {
userExperimentRole = userExperimentRoleFacade.findByUserExperimentRole(userId, experimentId, i);
userExperimentRoleFacade.remove(userExperimentRole);
}
}
}
public void removeExperimentRole(int roleId) {
UserExperimentRole userExperimentRole = userExperimentRoleFacade.findByUserExperimentRole(userId, experimentId, roleId);
userExperimentRoleFacade.remove(userExperimentRole);
}
public boolean canAddUsers() { public void setIsInRole(RoleType role, boolean isInRole) {
return roles[2] || roles[3]; roles[role.getId()] = isInRole;
} }
@Override
public int hashCode() {
return userId + experimentId * 100;
}
@Override public boolean[] getRoles() {
public boolean equals(Object object) { return roles;
// TODO: Warning - this method won't work in the case the id fields are not set }
if (!(object instanceof ExperimentUser)) {
return false; public void removeAllExperimentRoles() {
UserExperimentRole userExperimentRole;
for (int i = 1; i < roles.length; 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 userId + experimentId * 100;
}
@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 ExperimentUser)) {
return false;
}
return ((userId == ((ExperimentUser) object).userId) && (experimentId == ((ExperimentUser) object).experimentId));
} }
return ((userId == ((ExperimentUser)object).userId) && (experimentId == ((ExperimentUser)object).experimentId));
} }
}
class ExperimentUsersTable extends DataTableController<ExperimentUser> { class ExperimentUsersTable extends DataTableController<ExperimentUser> {
@Override @Override
...@@ -161,7 +150,6 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper ...@@ -161,7 +150,6 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper
public List<ExperimentUser> findAll() { public List<ExperimentUser> findAll() {
List<UserInfo> list = userInfoFacade.findUsersInExperiment(getCurrent().getId()); List<UserInfo> list = userInfoFacade.findUsersInExperiment(getCurrent().getId());
return convertExperimentUsers(list); return convertExperimentUsers(list);
// return new ArrayList<>(tempUsersList);
} }
List<ExperimentUser> convertExperimentUsers(List<UserInfo> list) { List<ExperimentUser> convertExperimentUsers(List<UserInfo> list) {
...@@ -208,19 +196,13 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper ...@@ -208,19 +196,13 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper
} }
} }
private ExperimentController.ExperimentUsersTable experimentUsersListTable; private ExperimentController.ExperimentUsersTable experimentUsersListTable = new ExperimentController.ExperimentUsersTable();
private ExperimentController.ExperimentUsersTable experimentUsersEditTable; private ExperimentController.ExperimentUsersTable experimentUsersEditTable = new ExperimentController.ExperimentUsersTable();
private ExperimentController.NoExperimentUsersTypeTable noExperimentUsersTypeTable; private ExperimentController.NoExperimentUsersTypeTable noExperimentUsersTypeTable = new ExperimentController.NoExperimentUsersTypeTable();
final private Map<UserInfo, ExperimentUser> experimentUsers = new HashMap<>(); final private Map<UserInfo, ExperimentUser> experimentUsers = new HashMap<>();
int maxExperimentRoleTypeId = 5; int maxExperimentRoleTypeId = 0;
public ExperimentController() { 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.experimentUsersListTable = new ExperimentController.ExperimentUsersTable();
this.experimentUsersEditTable = new ExperimentController.ExperimentUsersTable(); this.experimentUsersEditTable = new ExperimentController.ExperimentUsersTable();
this.noExperimentUsersTypeTable = new ExperimentController.NoExperimentUsersTypeTable(); this.noExperimentUsersTypeTable = new ExperimentController.NoExperimentUsersTypeTable();
...@@ -257,15 +239,31 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper ...@@ -257,15 +239,31 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper
@Override @Override
public String prepareEdit(Experiment experiment) { public String prepareEdit(Experiment experiment) {
clear(); clear();
if (maxExperimentRoleTypeId == 0) {
setMaxExperimentRoleTypeId();
}
return super.prepareEdit(experiment); return super.prepareEdit(experiment);
} }
@Override @Override
public String prepareView(Experiment experiment) { public String prepareView(Experiment experiment) {
clear(); clear();
if (maxExperimentRoleTypeId == 0) {
setMaxExperimentRoleTypeId();
}
return super.prepareView(experiment); return super.prepareView(experiment);
} }
private void setMaxExperimentRoleTypeId() {
List<RoleType> roleTypesList = roleTypeFacade.findAll();
for (RoleType roleType : roleTypesList) {
if ((roleType.getId() > maxExperimentRoleTypeId) && !roleType.isIsSystemRole()) {
maxExperimentRoleTypeId = roleType.getId();
}
}
maxExperimentRoleTypeId++;
}
@Override @Override
public void prepareEntityInsert(Experiment experiment) throws ObjectAlreadyExists, InvalidDate, MissingProperty { public void prepareEntityInsert(Experiment experiment) throws ObjectAlreadyExists, InvalidDate, MissingProperty {
if ((experiment.getName() == null) || (experiment.getName().length() == 0)){ if ((experiment.getName() == null) || (experiment.getName().length() == 0)){
...@@ -356,8 +354,25 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper ...@@ -356,8 +354,25 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper
// experiment type permission // experiment type permission
// return experimentUsersMap.get(username).canAddUsers(); // return experimentUsersMap.get(username).canAddUsers();
} }
public void updateRemovedExperimentRoles() {
UserExperimentRole userExperimentRole;
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))) {
userExperimentRole = userExperimentRoleFacade.findByUserExperimentRole(experimentUser.userId, experimentUser.experimentId, roleId);
if (userExperimentRole != null) {
userExperimentRoleFacade.remove(userExperimentRole);
}
}
}
}
}
@Override @Override
public String update() { public String update() {
boolean updated; boolean updated;
List<RoleType> roleTypesList = roleTypeFacade.findAll(); List<RoleType> roleTypesList = roleTypeFacade.findAll();
...@@ -388,8 +403,6 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper ...@@ -388,8 +403,6 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper
} }
clear(); clear();
// experimentUsersListTable.resetList();
// experimentUsersEditTable.resetList();
return super.update(); return super.update();
} }
...@@ -401,7 +414,6 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper ...@@ -401,7 +414,6 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper
} }
public String removeUser() { public String removeUser() {
List<RoleType> roleTypesList = roleTypeFacade.findAll(); List<RoleType> roleTypesList = roleTypeFacade.findAll();
ExperimentUser experimentUser = experimentUsersEditTable.getCurrentObject(); ExperimentUser experimentUser = experimentUsersEditTable.getCurrentObject();
UserInfo user = findUserInExperiment(experimentUser); UserInfo user = findUserInExperiment(experimentUser);
...@@ -421,19 +433,6 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper ...@@ -421,19 +433,6 @@ public class ExperimentController extends CrudEntityController<Experiment, Exper
experimentUser.removeAllExperimentRoles(); 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) { private UserInfo findUserInExperiment(ExperimentUser experimentUser) {
for (UserInfo user : experimentUsers.keySet()) { for (UserInfo user : experimentUsers.keySet()) {
if (experimentUsers.get(user).equals(experimentUser)) { if (experimentUsers.get(user).equals(experimentUser)) {
......
...@@ -6,7 +6,6 @@ ...@@ -6,7 +6,6 @@
package gov.anl.aps.dm.portal.model.entities; package gov.anl.aps.dm.portal.model.entities;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import javax.persistence.Basic; import javax.persistence.Basic;
import javax.persistence.CascadeType; import javax.persistence.CascadeType;
...@@ -208,18 +207,6 @@ public class UserInfo extends CloneableEntity ...@@ -208,18 +207,6 @@ public class UserInfo extends CloneableEntity
} }
} }
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) { public void addUserExperimentRole(UserExperimentRole userExperimentRole) {
userExperimentRoleList.add(userExperimentRole); userExperimentRoleList.add(userExperimentRole);
} }
......
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