From 6b3b32373a3df72c350f35f2a977282a39069ca3 Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Tue, 20 Feb 2018 17:07:24 +0100 Subject: [PATCH] UserView class removed --- .../mapviewer/services/impl/UserService.java | 101 --- .../services/interfaces/IUserService.java | 62 -- .../mapviewer/services/view/UserView.java | 599 ------------------ .../services/view/UserViewFactory.java | 239 ------- .../resources/applicationContext-service.xml | 1 - .../services/impl/UserServiceTest.java | 292 +-------- .../mapviewer/services/view/AllViewTests.java | 48 +- .../services/view/UserViewFactoryTest.java | 46 -- .../mapviewer/services/view/UserViewTest.java | 27 - 9 files changed, 28 insertions(+), 1387 deletions(-) delete mode 100644 service/src/main/java/lcsb/mapviewer/services/view/UserView.java delete mode 100644 service/src/main/java/lcsb/mapviewer/services/view/UserViewFactory.java delete mode 100644 service/src/test/java/lcsb/mapviewer/services/view/UserViewFactoryTest.java delete mode 100644 service/src/test/java/lcsb/mapviewer/services/view/UserViewTest.java diff --git a/service/src/main/java/lcsb/mapviewer/services/impl/UserService.java b/service/src/main/java/lcsb/mapviewer/services/impl/UserService.java index bac9ff234a..385a8626ee 100644 --- a/service/src/main/java/lcsb/mapviewer/services/impl/UserService.java +++ b/service/src/main/java/lcsb/mapviewer/services/impl/UserService.java @@ -4,7 +4,6 @@ import java.awt.Color; import java.math.BigInteger; import java.security.SecureRandom; import java.util.ArrayList; -import java.util.Collection; import java.util.List; import java.util.Random; @@ -37,10 +36,6 @@ import lcsb.mapviewer.services.interfaces.IConfigurationService; import lcsb.mapviewer.services.interfaces.ILogService; import lcsb.mapviewer.services.interfaces.ILogService.LogParams; import lcsb.mapviewer.services.interfaces.IUserService; -import lcsb.mapviewer.services.view.PrivilegeView; -import lcsb.mapviewer.services.view.UserView; -import lcsb.mapviewer.services.view.UserView.UserProjectPrivilegeView; -import lcsb.mapviewer.services.view.UserViewFactory; /** * Implementation of the service that manages users. @@ -77,12 +72,6 @@ public class UserService implements IUserService { @Autowired private SessionRegistry sessionRegistry; - /** - * Factory object for {@link UserView} elements. - */ - @Autowired - private UserViewFactory userViewFactory; - /** * Service that provides password encoding. */ @@ -175,79 +164,6 @@ public class UserService implements IUserService { return result; } - @Override - public List<UserView> getAllUserRows() { - List<Project> projects = projectDao.getAll(); - - List<UserView> result = new ArrayList<>(); - List<User> fullList = userDao.getAll(); - for (User user : fullList) { - result.add(userViewFactory.create(user, projects)); - } - - return result; - } - - @Override - public UserView getUserRow(User user) { - List<Project> projects = projectDao.getAll(); - return userViewFactory.create(user, projects); - } - - @Override - public void updateUser(UserView userRow) { - User user = null; - if (userRow.getIdObject() == null || userRow.getIdObject() == 0) { - user = new User(); - user.setLogin(userRow.getLogin()); - } else { - user = getUserById(userRow.getIdObject()); - } - if (userRow.getPassword() != null && !userRow.getPassword().trim().equals("")) { - user.setCryptedPassword(passwordEncoder.encode(userRow.getPassword())); - } - - user.setEmail(userRow.getEmail()); - user.setName(userRow.getName()); - user.setSurname(userRow.getSurname()); - if (user.getId() == null) { - addUser(user); - } else { - updateUser(user); - } - - userRow.setIdObject(user.getId()); - - for (PrivilegeView pRow : userRow.getBasicPrivileges()) { - if (pRow.getNumeric()) { - setUserPrivilege(user, new BasicPrivilege(pRow.getLevel(), pRow.getType(), user)); - } else if (pRow.getSelected()) { - setUserPrivilege(user, new BasicPrivilege(1, pRow.getType(), user)); - } else { - setUserPrivilege(user, new BasicPrivilege(0, pRow.getType(), user)); - } - } - for (UserProjectPrivilegeView upRow : userRow.getProjectPrivileges()) { - for (PrivilegeView pRow : upRow.getProjectPrivileges()) { - Project project = projectDao.getById(upRow.getIdObject()); - if (pRow.getNumeric()) { - setUserPrivilege(user, new ObjectPrivilege(project, pRow.getLevel(), pRow.getType(), user)); - } else if (pRow.getSelected()) { - setUserPrivilege(user, new ObjectPrivilege(project, 1, pRow.getType(), user)); - } else { - setUserPrivilege(user, new ObjectPrivilege(project, 0, pRow.getType(), user)); - } - } - } - } - - @Override - public void deleteUser(UserView selectedUser) { - if (selectedUser.getIdObject() != null && selectedUser.getIdObject() != 0) { - deleteUser(getUserById(selectedUser.getIdObject())); - } - } - @Override public void dropPrivilegesForObjectType(PrivilegeType type, int id) { IntegerComparator integerComparator = new IntegerComparator(); @@ -324,11 +240,6 @@ public class UserService implements IUserService { return -1; } - @Override - public void addUser(UserView userRow) { - updateUser(userRow); - } - @Override public void setUserPrivilege(User user, PrivilegeType type, Integer value) { BasicPrivilege privilege = new BasicPrivilege(value, type, user); @@ -417,18 +328,6 @@ public class UserService implements IUserService { this.passwordEncoder = passwordEncoder; } - @Override - public UserView createEmptyUserRow() { - return userViewFactory.create(null); - } - - @Override - public void updateUsers(Collection<UserView> users) { - for (UserView user : users) { - updateUser(user); - } - } - /** * @param password * input password diff --git a/service/src/main/java/lcsb/mapviewer/services/interfaces/IUserService.java b/service/src/main/java/lcsb/mapviewer/services/interfaces/IUserService.java index b0078cba8c..d11ffec752 100644 --- a/service/src/main/java/lcsb/mapviewer/services/interfaces/IUserService.java +++ b/service/src/main/java/lcsb/mapviewer/services/interfaces/IUserService.java @@ -1,6 +1,5 @@ package lcsb.mapviewer.services.interfaces; -import java.util.Collection; import java.util.List; import lcsb.mapviewer.commands.ColorExtractor; @@ -8,7 +7,6 @@ import lcsb.mapviewer.model.user.BasicPrivilege; import lcsb.mapviewer.model.user.PrivilegeType; import lcsb.mapviewer.model.user.User; import lcsb.mapviewer.services.SecurityException; -import lcsb.mapviewer.services.view.UserView; /** * Service that manages users. @@ -130,48 +128,6 @@ public interface IUserService { */ User getUserById(int id); - /** - * Returns user views for all users. - * - * @return list of user {@link lcsb.mapviewer.services.view.AbstractView views} - * for all users - */ - List<UserView> getAllUserRows(); - - /** - * @param user - * user that will have view. - * @return view for one user. - */ - UserView getUserRow(User user); - - /** - * Updates user from user {@link lcsb.mapviewer.services.view.AbstractView - * view}. - * - * @param selectedUser - * user {@link lcsb.mapviewer.services.view.AbstractView view} to - * update - */ - void updateUser(UserView selectedUser); - - /** - * Removes user based on user {@link lcsb.mapviewer.services.view.AbstractView - * view}. - * - * @param selectedUser - * user {@link lcsb.mapviewer.services.view.AbstractView view} to be - * removed - */ - void deleteUser(UserView selectedUser); - - /** - * Creates empty view. - * - * @return empty user {@link lcsb.mapviewer.services.view.AbstractView view} . - */ - UserView createEmptyUserRow(); - /** * Drops privileges for every user on the given object and type. * @@ -182,14 +138,6 @@ public interface IUserService { */ void dropPrivilegesForObjectType(PrivilegeType type, int objectId); - /** - * Adds user from user view. - * - * @param selectedUser - * user view representation that should be added - */ - void addUser(UserView selectedUser); - /** * Adds privilege to the user. * @@ -200,16 +148,6 @@ public interface IUserService { */ void setUserPrivilege(User user, PrivilegeType type, Integer value); - /** - * Updates users from list of user - * {@link lcsb.mapviewer.services.view.AbstractView view}. - * - * @param users - * user {@link lcsb.mapviewer.services.view.AbstractView views} to - * update - */ - void updateUsers(Collection<UserView> users); - /** * @param password * input password diff --git a/service/src/main/java/lcsb/mapviewer/services/view/UserView.java b/service/src/main/java/lcsb/mapviewer/services/view/UserView.java deleted file mode 100644 index 7569de2fc5..0000000000 --- a/service/src/main/java/lcsb/mapviewer/services/view/UserView.java +++ /dev/null @@ -1,599 +0,0 @@ -package lcsb.mapviewer.services.view; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; - -import javax.faces.model.ListDataModel; - -import lcsb.mapviewer.common.comparator.IntegerComparator; -import lcsb.mapviewer.model.Project; -import lcsb.mapviewer.model.map.layout.Layout; -import lcsb.mapviewer.model.user.PrivilegeType; -import lcsb.mapviewer.model.user.User; - -import org.apache.log4j.Logger; -import org.primefaces.model.SelectableDataModel; - -/** - * This class represents view of the {@link User} that is available on the - * client side. - * - * @author Piotr Gawron - * - */ -public class UserView extends AbstractView<User> implements Comparable<UserView>, Serializable { - - /** - * - */ - private static final long serialVersionUID = 1L; - - /** - * Default class logger. - */ - private static Logger logger = Logger.getLogger(UserView.class); - - /** - * This data model is extension of faces {@link ListDataModel} and implements - * {@link SelectableDataModel} from primefaces library. It allows client to - * create a table (in xhtml) that allows to select element on it and call select - * event associated with the row. The model operates on - * {@link UserProjectPrivilegeView} that describe set of privileges to single - * project. - * - * @author Piotr Gawron - * - */ - public class ProjectDataModel extends ListDataModel<UserProjectPrivilegeView> - implements SelectableDataModel<UserProjectPrivilegeView>, Serializable { - - /** - * - */ - private static final long serialVersionUID = 1L; - - /** - * Default constructor. - */ - public ProjectDataModel() { - } - - /** - * Constructor that initialize the data. - * - * @param data - * data used in the model - */ - public ProjectDataModel(List<UserProjectPrivilegeView> data) { - super(data); - } - - @Override - public Object getRowKey(UserProjectPrivilegeView object) { - return object.toString(); - } - - @SuppressWarnings("unchecked") - @Override - public UserProjectPrivilegeView getRowData(String rowKey) { - List<UserProjectPrivilegeView> privileges = (List<UserProjectPrivilegeView>) getWrappedData(); - - for (UserProjectPrivilegeView privilege : privileges) { - if ((privilege.toString()).equals(rowKey)) { - return privilege; - } - } - return null; - } - - } - - /** - * Class representing prvileges to the specific project. - * - * @author Piotr Gawron - * - */ - public class UserProjectPrivilegeView extends AbstractView<Project> implements Serializable { - /** - * - */ - private static final long serialVersionUID = 1L; - - /** - * {@link Project#projectId Project identifier}. - */ - private String projectId; - - /** - * List of privileges to the project. - */ - private List<PrivilegeView> projectPrivileges = new ArrayList<PrivilegeView>(); - - /** - * List of layouts with privileges. - */ - private List<UserLayoutPrivilege> layoutPrivileges = new ArrayList<UserLayoutPrivilege>(); - - /** - * Constructor that creates view for the project. - * - * @param project - * originasl project - */ - public UserProjectPrivilegeView(Project project) { - super(project); - this.projectId = project.getProjectId(); - } - - /** - * Default constructor. - */ - public UserProjectPrivilegeView() { - super(null); - } - - /** - * @return the projectId - * @see #projectId - */ - public String getProjectId() { - return projectId; - } - - /** - * @param projectId - * the projectId to set - * @see #projectId - */ - public void setProjectId(String projectId) { - this.projectId = projectId; - } - - /** - * @return the projectPrivileges - * @see #projectPrivileges - */ - public List<PrivilegeView> getProjectPrivileges() { - return projectPrivileges; - } - - /** - * @param projectPrivileges - * the projectPrivileges to set - * @see #projectPrivileges - */ - public void setProjectPrivileges(List<PrivilegeView> projectPrivileges) { - this.projectPrivileges = projectPrivileges; - } - - /** - * @return the layoutPrivileges - * @see #layoutPrivileges - */ - public List<UserLayoutPrivilege> getLayoutPrivileges() { - return layoutPrivileges; - } - - /** - * @param layoutPrivileges - * the layoutPrivileges to set - * @see #layoutPrivileges - */ - public void setLayoutPrivileges(List<UserLayoutPrivilege> layoutPrivileges) { - this.layoutPrivileges = layoutPrivileges; - } - - /** - * Returns view of the {@link Privilege} for a given {@link PrivilegeType}. - * - * @param pt - * ttype of privilege - * @return view of the {@link Privilege} for a given {@link PrivilegeType} - */ - public PrivilegeView getProjectPrivilegeByPrivilegeType(PrivilegeType pt) { - for (PrivilegeView pv : projectPrivileges) { - if (pv.getType() == pt) { - return pv; - } - } - logger.warn("Cannot find " + pt + " for projectID: " + this.getIdObject() + " (" + this.getProjectId() - + "). UserId: " + UserView.this.getIdObject() + " (" + UserView.this.getLogin() + ")"); - return null; - } - - } - - /** - * Class representing prvileges to the specific - * {@link lcsb.mapviewer.db.model.map.layout.Layout Layout}. - * - * @author Piotr Gawron - * - */ - public class UserLayoutPrivilege extends AbstractView<Layout> { - /** - * - */ - private static final long serialVersionUID = 1L; - - /** - * Name of the layout. - */ - private String layoutName; - - /** - * List of privileges for the layout. - */ - private List<PrivilegeView> layoutPrivileges = new ArrayList<PrivilegeView>(); - - /** - * Default constructor. - * - * @param layout - * object for which the privilege set is created - */ - protected UserLayoutPrivilege(Layout layout) { - super(layout); - } - - /** - * Default constructor. Should be used only for deserialization. - */ - protected UserLayoutPrivilege() { - } - - /** - * @return the layoutName - * @see #layoutName - */ - public String getLayoutName() { - return layoutName; - } - - /** - * @param layoutName - * the layoutName to set - * @see #layoutName - */ - public void setLayoutName(String layoutName) { - this.layoutName = layoutName; - } - - /** - * @return the layoutPrivileges - * @see #layoutPrivileges - */ - public List<PrivilegeView> getLayoutPrivileges() { - return layoutPrivileges; - } - - /** - * @param layoutPrivileges - * the layoutPrivileges to set - * @see #layoutPrivileges - */ - public void setLayoutPrivileges(List<PrivilegeView> layoutPrivileges) { - this.layoutPrivileges = layoutPrivileges; - } - - } - - /** - * Use login. - */ - private String login; - - /** - * User password (can be set only by the client side, when view is created - * password should be set to empty, simple precaution not to reveal passwords). - */ - private String password; - - /** - * User password 2. - */ - private String password2; - - /** - * Old password. - */ - private String oldPassword; - - /** - * Old Encrypted password. - */ - private String cryptedPassword; - - /** - * Name of the user. - */ - private String name; - - /** - * Family name of the user. - */ - private String surname; - - /** - * User email address. - */ - private String email; - - /** - * List of general privielges. - */ - private List<PrivilegeView> basicPrivileges = new ArrayList<PrivilegeView>(); - /** - * List of privileges divided by the projects. - */ - - private List<UserProjectPrivilegeView> projectPrivileges = new ArrayList<UserProjectPrivilegeView>(); - /** - * Data model used for managing project privileges. - */ - private ProjectDataModel pdm = null; - - /** - * Constructor that create user view from the user data. - * - * @param user - * orignal user - */ - protected UserView(User user) { - super(user); - this.login = user.getLogin(); - this.password = ""; - this.password2 = ""; - this.oldPassword = ""; - this.cryptedPassword = user.getCryptedPassword(); - this.name = user.getName(); - this.surname = user.getSurname(); - this.email = user.getEmail(); - } - - /** - * Default constructor. - */ - protected UserView() { - super(null); - } - - /** - * Returns object with privileges for the given project. - * - * @param projectId - * identifier of the project - * @return object with privileges for the given project - */ - public UserProjectPrivilegeView getProjectPrivilegeByProjectId(Integer projectId) { - IntegerComparator comparator = new IntegerComparator(); - for (UserProjectPrivilegeView projectPrivilege : getProjectPrivileges()) { - if (comparator.compare(projectPrivilege.getIdObject(), projectId) == 0) { - return projectPrivilege; - } - } - if (projectId == null) { - logger.warn("Cannot find default project privileges. User: " + getIdObject() + " (" + getLogin() + ")."); - - } else if (projectId != 0) { - logger.warn("Cannot find project privileges for projectID: " + projectId + ". User: " + getIdObject() + " (" - + getLogin() + ")."); - } - return null; - } - - /** - * - * @return {@link #pdm} - */ - public ProjectDataModel getPdm() { - if (pdm == null) { - pdm = new ProjectDataModel(projectPrivileges); - } - return pdm; - } - - /** - * - * @param pdm - * new {@link #pdm} object - */ - public void setPdm(ProjectDataModel pdm) { - this.pdm = pdm; - } - - /** - * Return object with privileges for layout given in the parameter. - * - * @param layoutId - * identifier of the layout - * @return object with privileges for layout - */ - public UserLayoutPrivilege getLayoutPrivilegeByLayoutId(int layoutId) { - for (UserProjectPrivilegeView projectPrivilege : getProjectPrivileges()) { - for (UserLayoutPrivilege layoutPrivilege : projectPrivilege.getLayoutPrivileges()) { - if (layoutPrivilege.getIdObject() == layoutId) { - return layoutPrivilege; - } - } - } - logger.warn("Cannot find project privileges for layoutID: " + layoutId); - return null; - } - - @Override - public int compareTo(UserView o) { - IntegerComparator comparator = new IntegerComparator(); - if (o == null) { - comparator.compare(getIdObject(), null); - } - return comparator.compare(getIdObject(), o.getIdObject()); - - } - - /** - * @return the login - * @see #login - */ - public String getLogin() { - return login; - } - - /** - * @param login - * the login to set - * @see #login - */ - public void setLogin(String login) { - this.login = login; - } - - /** - * @return the password - * @see #password - */ - public String getPassword() { - return password; - } - - /** - * @param password - * the password to set - * @see #password - */ - public void setPassword(String password) { - this.password = password; - } - - /** - * @return the name - * @see #name - */ - public String getName() { - return name; - } - - /** - * @param name - * the name to set - * @see #name - */ - public void setName(String name) { - this.name = name; - } - - /** - * @return the surname - * @see #surname - */ - public String getSurname() { - return surname; - } - - /** - * @param surname - * the surname to set - * @see #surname - */ - public void setSurname(String surname) { - this.surname = surname; - } - - /** - * @return the email - * @see #email - */ - public String getEmail() { - return email; - } - - /** - * @param email - * the email to set - * @see #email - */ - public void setEmail(String email) { - this.email = email; - } - - /** - * @return the basicPrivileges - * @see #basicPrivileges - */ - public List<PrivilegeView> getBasicPrivileges() { - return basicPrivileges; - } - - /** - * @param basicPrivileges - * the basicPrivileges to set - * @see #basicPrivileges - */ - public void setBasicPrivileges(List<PrivilegeView> basicPrivileges) { - this.basicPrivileges = basicPrivileges; - } - - /** - * @return the projectPrivileges - * @see #projectPrivileges - */ - public List<UserProjectPrivilegeView> getProjectPrivileges() { - return projectPrivileges; - } - - /** - * @param projectPrivileges - * the projectPrivileges to set - * @see #projectPrivileges - */ - public void setProjectPrivileges(List<UserProjectPrivilegeView> projectPrivileges) { - this.projectPrivileges = projectPrivileges; - } - - /** - * @return old password as typed by the user. - */ - public String getOldPassword() { - return oldPassword; - } - - /** - * @param oldPassword - * the field for the user to put in the old password, - */ - public void setOldPassword(String oldPassword) { - this.oldPassword = oldPassword; - } - - /** - * @return password crypted and stored in DB. - */ - public String getCryptedPassword() { - return cryptedPassword; - } - - /** - * @param cryptedPassword - * crypted password stored in DB - */ - public void setCryptedPassword(String cryptedPassword) { - this.cryptedPassword = cryptedPassword; - } - - /** - * @return password2. - */ - public String getPassword2() { - return password2; - } - - /** - * @param password2 - * to verify that the password match. - */ - public void setPassword2(String password2) { - this.password2 = password2; - } -} diff --git a/service/src/main/java/lcsb/mapviewer/services/view/UserViewFactory.java b/service/src/main/java/lcsb/mapviewer/services/view/UserViewFactory.java deleted file mode 100644 index c5c9561a93..0000000000 --- a/service/src/main/java/lcsb/mapviewer/services/view/UserViewFactory.java +++ /dev/null @@ -1,239 +0,0 @@ -package lcsb.mapviewer.services.view; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import lcsb.mapviewer.model.Project; -import lcsb.mapviewer.model.map.layout.Layout; -import lcsb.mapviewer.model.user.BasicPrivilege; -import lcsb.mapviewer.model.user.ObjectPrivilege; -import lcsb.mapviewer.model.user.PrivilegeType; -import lcsb.mapviewer.model.user.User; -import lcsb.mapviewer.persist.dao.ProjectDao; -import lcsb.mapviewer.services.utils.InvalidPrivilegeException; -import lcsb.mapviewer.services.view.UserView.UserLayoutPrivilege; -import lcsb.mapviewer.services.view.UserView.UserProjectPrivilegeView; - -import org.apache.log4j.Logger; -import org.springframework.beans.factory.annotation.Autowired; - -import lcsb.mapviewer.common.exception.NotImplementedException; - -import com.google.gson.Gson; - -/** - * Factory class for {@link UserView} class. - * - * @author Piotr Gawron - * - */ -public class UserViewFactory extends AbstractViewFactory<User, UserView> { - - /** - * Default class logger. - */ - @SuppressWarnings("unused") - private static Logger logger = Logger.getLogger(UserViewFactory.class); - - /** - * Data access object for projects. - */ - @Autowired - private ProjectDao projectDao; - - /** - * Factory object for {@link PrivilegeView} elements. - */ - @Autowired - private PrivilegeViewFactory privilegeViewFactory; - - @Override - public UserView create(User user) { - return create(user, projectDao.getAll()); - } - - /** - * Creates {@link UserView} obejct for given user and given list of projects. - * - * @param user - * object for which {@link UserView} element will be created - * @param projects - * list of project for which privileges will be created as - * {@link PrivilegeView} elements in the result - * @return {@link UserView} obejct for given user - */ - public UserView create(User user, List<Project> projects) { - UserView result = null; - if (user == null) { - result = new UserView(); - for (Project project : projects) { - result.getProjectPrivileges().add(result.new UserProjectPrivilegeView(project)); - } - for (PrivilegeType type : getBasicTypes()) { - result.getBasicPrivileges().add(privilegeViewFactory.create(type)); - } - for (UserProjectPrivilegeView projectPrivilege : result.getProjectPrivileges()) { - for (PrivilegeType type : getObjectTypes()) { - if (type.getPrivilegeObjectType().equals(Project.class)) { - projectPrivilege.getProjectPrivileges().add(privilegeViewFactory.create(type)); - } - } - } - } else { - result = new UserView(user); - - for (Project project : projects) { - result.getProjectPrivileges().add(result.new UserProjectPrivilegeView(project)); - } - - setPrivilegeStatusFromDb(user, result); - - createUnknownPrivileges(result); - } - - Collections.sort(result.getBasicPrivileges()); - for (UserProjectPrivilegeView row1 : result.getProjectPrivileges()) { - Collections.sort(row1.getProjectPrivileges()); - } - - return result; - } - - /** - * Creates privileges for user that doesn't exists in database. - * - * @param row - * user for which we want to add missing privileges - */ - private void createUnknownPrivileges(UserView row) { - Set<PrivilegeType> knownPrivileges = new HashSet<PrivilegeType>(); - for (PrivilegeView privilege : row.getBasicPrivileges()) { - knownPrivileges.add(privilege.getType()); - } - - for (PrivilegeType type : getBasicTypes()) { - if (!knownPrivileges.contains(type)) { - row.getBasicPrivileges().add(privilegeViewFactory.create(type)); - } - } - for (UserProjectPrivilegeView projectPrivilege : row.getProjectPrivileges()) { - knownPrivileges.clear(); - for (PrivilegeView privilege : projectPrivilege.getProjectPrivileges()) { - knownPrivileges.add(privilege.getType()); - } - for (PrivilegeType type : getObjectTypes()) { - if (type.getPrivilegeObjectType().equals(Project.class)) { - if (!knownPrivileges.contains(type)) { - projectPrivilege.getProjectPrivileges().add(privilegeViewFactory.create(type)); - } - } - } - } - } - - /** - * Method that assigns privileges from original user object into view - * representation userView. - * - * @param user - * original object retrieved from database - * @param userView - * representation of the user passed later on to higher layer - */ - private void setPrivilegeStatusFromDb(User user, UserView userView) { - for (BasicPrivilege privilege : user.getPrivileges()) { - if (privilege.getClass().equals(BasicPrivilege.class)) { - userView.getBasicPrivileges().add(privilegeViewFactory.create(privilege)); - } else if (privilege.getClass().equals(ObjectPrivilege.class)) { - if (privilege.getType().getPrivilegeObjectType().equals(Project.class)) { - Integer projectId = ((ObjectPrivilege) privilege).getIdObject(); - UserProjectPrivilegeView projectPrivilege = userView.getProjectPrivilegeByProjectId(projectId); - if (projectPrivilege != null) { - projectPrivilege.getProjectPrivileges().add(privilegeViewFactory.create(privilege)); - } - } else if (privilege.getType().getPrivilegeObjectType().equals(Layout.class)) { - int layoutId = ((ObjectPrivilege) privilege).getIdObject(); - UserLayoutPrivilege layoutPrivilege = userView.getLayoutPrivilegeByLayoutId(layoutId); - if (layoutPrivilege != null) { - layoutPrivilege.getLayoutPrivileges().add(privilegeViewFactory.create(privilege)); - } - } else { - throw new InvalidPrivilegeException( - "Unknown class for object privilege: " + privilege.getType().getPrivilegeObjectType()); - } - } else { - throw new InvalidPrivilegeException("Unknown privilege type: " + privilege.getType()); - } - } - } - - /** - * Returns list of basic privilege types (privileges that doesn't refer to - * another object). - * - * @return list of basic privilege types - */ - public List<PrivilegeType> getBasicTypes() { - if (basicTypes == null) { - fillTypeList(); - } - return basicTypes; - } - - /** - * List of type privileges that refers to {@link BasicPrivilege} class. - */ - private List<PrivilegeType> basicTypes = null; - /** - * List of type privileges that refers to {@link ObjectPrivilege} class. - */ - private List<PrivilegeType> objectTypes = null; - - /** - * Returns list of object privilege types (privileges that refer to another - * object). - * - * @return list of object privilege types - */ - public List<PrivilegeType> getObjectTypes() { - if (objectTypes == null) { - fillTypeList(); - } - return objectTypes; - } - - /** - * This method initializes {@link #basicTypes} and {@link #objectTypes} lists. - */ - private void fillTypeList() { - basicTypes = new ArrayList<PrivilegeType>(); - objectTypes = new ArrayList<PrivilegeType>(); - - PrivilegeType[] types = PrivilegeType.values(); - - for (PrivilegeType privilegeType : types) { - if (privilegeType.getPrivilegeClassType().equals(BasicPrivilege.class)) { - basicTypes.add(privilegeType); - } else if (privilegeType.getPrivilegeClassType().equals(ObjectPrivilege.class)) { - objectTypes.add(privilegeType); - } else { - throw new InvalidPrivilegeException("Unknown privilege type: " + privilegeType.getPrivilegeClassType()); - } - } - - } - - @Override - public String createGson(UserView object) { - return new Gson().toJson(object); - } - - @Override - public User viewToObject(UserView view) { - throw new NotImplementedException(); - } - -} diff --git a/service/src/main/resources/applicationContext-service.xml b/service/src/main/resources/applicationContext-service.xml index 7d133276ba..08cd8531e2 100644 --- a/service/src/main/resources/applicationContext-service.xml +++ b/service/src/main/resources/applicationContext-service.xml @@ -62,7 +62,6 @@ <bean id="PubmedAnnotatedElementsViewFactory" class="lcsb.mapviewer.services.view.PubmedAnnotatedElementsViewFactory"/> <bean id="ReferenceGenomeViewFactory" class="lcsb.mapviewer.services.view.ReferenceGenomeViewFactory"/> <bean id="ReferenceGenomeGeneMappingViewFactory" class="lcsb.mapviewer.services.view.ReferenceGenomeGeneMappingViewFactory"/> - <bean id="UserViewFactory" class="lcsb.mapviewer.services.view.UserViewFactory"/> <bean id="FullAliasViewFactory" class="lcsb.mapviewer.services.search.data.FullAliasViewFactory"/> <bean id="FullReactionViewFactory" class="lcsb.mapviewer.services.search.data.FullReactionViewFactory"/> diff --git a/service/src/test/java/lcsb/mapviewer/services/impl/UserServiceTest.java b/service/src/test/java/lcsb/mapviewer/services/impl/UserServiceTest.java index 128344b26f..57ae4d75f0 100644 --- a/service/src/test/java/lcsb/mapviewer/services/impl/UserServiceTest.java +++ b/service/src/test/java/lcsb/mapviewer/services/impl/UserServiceTest.java @@ -7,35 +7,23 @@ import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; -import java.util.ArrayList; -import java.util.List; +import org.apache.log4j.Logger; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.springframework.test.annotation.Rollback; -import lcsb.mapviewer.common.exception.InvalidArgumentException; import lcsb.mapviewer.model.Project; import lcsb.mapviewer.model.user.BasicPrivilege; import lcsb.mapviewer.model.user.ObjectPrivilege; import lcsb.mapviewer.model.user.PrivilegeType; import lcsb.mapviewer.model.user.User; import lcsb.mapviewer.services.ServiceTestFunctions; -import lcsb.mapviewer.services.view.PrivilegeView; -import lcsb.mapviewer.services.view.UserView; -import lcsb.mapviewer.services.view.UserView.UserProjectPrivilegeView; -import lcsb.mapviewer.services.view.UserViewFactory; - -import org.apache.log4j.Logger; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.test.annotation.Rollback; @Rollback(true) public class UserServiceTest extends ServiceTestFunctions { static Logger logger = Logger.getLogger(UserServiceTest.class); - @Autowired - UserViewFactory userViewFactory; - @Before public void setUp() throws Exception { createUser(); @@ -175,274 +163,4 @@ public class UserServiceTest extends ServiceTestFunctions { throw e; } } - - @Test - public void testGetAllUserList() throws Exception { - try { - User user2 = new User(); - user2.setLogin("login"); - userService.addUser(user2); - - Project project = new Project(); - projectDao.add(project); - - ObjectPrivilege privilege = new ObjectPrivilege(); - privilege.setLevel(1); - privilege.setType(PrivilegeType.VIEW_PROJECT); - privilege.setIdObject(project.getId()); - userService.setUserPrivilege(user2, privilege); - - List<UserView> list = userService.getAllUserRows(); - UserView currentUser = null; - for (UserView userRow : list) { - if (userRow.getIdObject() == user2.getId()) { - currentUser = userRow; - } - } - assertNotNull(currentUser); - assertEquals(user2.getLogin(), currentUser.getLogin()); - - PrivilegeType types[] = PrivilegeType.values(); - - List<BasicPrivilege> basicTypes = new ArrayList<BasicPrivilege>(); - List<ObjectPrivilege> projectObjectTypes = new ArrayList<ObjectPrivilege>(); - for (PrivilegeType privilegeType : types) { - if (privilegeType.getPrivilegeClassType().equals(BasicPrivilege.class)) { - basicTypes.add(privilegeType.getPrivilegeClassType().newInstance()); - } else if (privilegeType.getPrivilegeClassType().equals(ObjectPrivilege.class)) { - if (privilegeType.getPrivilegeObjectType().equals(Project.class)) { - projectObjectTypes.add((ObjectPrivilege) privilegeType.getPrivilegeClassType().newInstance()); - } - } - } - - assertEquals(basicTypes.size(), currentUser.getBasicPrivileges().size()); - - long projectCount = projectDao.getCount(); - - assertEquals(projectCount, currentUser.getProjectPrivileges().size()); - - UserProjectPrivilegeView currentProject = null; - for (UserProjectPrivilegeView projectPrivilege : currentUser.getProjectPrivileges()) { - assertEquals(projectObjectTypes.size(), projectPrivilege.getProjectPrivileges().size()); - if (projectPrivilege.getIdObject() == project.getId()) { - currentProject = projectPrivilege; - } - } - assertNotNull(currentProject); - PrivilegeView currentPrivilege = null; - for (PrivilegeView row : currentProject.getProjectPrivileges()) { - if (row.getType() == PrivilegeType.VIEW_PROJECT) { - currentPrivilege = row; - } - } - assertNotNull(currentPrivilege); - assertTrue(currentPrivilege.getSelected()); - - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - /** - * Test update of a user that doesn't exist in db - */ - @Test - public void testUpdateUserRow() { - try { - Project project = new Project(); - projectDao.add(project); - - UserView userRow = userService.createEmptyUserRow(); - - for (PrivilegeView pRow : userRow.getBasicPrivileges()) { - if (pRow.getType().equals(PrivilegeType.ADD_MAP)) { - pRow.setSelected(true); - } - } - - for (PrivilegeView pRow : userRow.getProjectPrivilegeByProjectId(project.getId()).getProjectPrivileges()) { - if (pRow.getType().equals(PrivilegeType.VIEW_PROJECT)) { - pRow.setSelected(true); - } - } - - userService.updateUser(userRow); - - assertNotNull(userRow.getIdObject()); - assertTrue(userRow.getIdObject() != 0); - - User user2 = userDao.getById(userRow.getIdObject()); - - assertTrue(userService.userHasPrivilege(user2, PrivilegeType.ADD_MAP)); - assertFalse(userService.userHasPrivilege(user2, PrivilegeType.PROJECT_MANAGEMENT)); - assertTrue(userService.userHasPrivilege(user2, PrivilegeType.VIEW_PROJECT, project)); - - for (PrivilegeView pRow : userRow.getBasicPrivileges()) { - if (pRow.getType().equals(PrivilegeType.ADD_MAP)) { - pRow.setSelected(false); - } - } - - for (PrivilegeView pRow : userRow.getProjectPrivilegeByProjectId(project.getId()).getProjectPrivileges()) { - if (pRow.getType().equals(PrivilegeType.VIEW_PROJECT)) { - pRow.setSelected(false); - } - } - - userService.updateUser(userRow); - - assertFalse(userService.userHasPrivilege(user2, PrivilegeType.ADD_MAP)); - assertFalse(userService.userHasPrivilege(user2, PrivilegeType.VIEW_PROJECT, project)); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - /** - * Test update of a user that exist in the db - * - * @throws Exception - */ - @Test - public void testUpdateUserRow2() throws Exception { - String cryptedPassword = "passwd"; - - try { - Project project = new Project(); - projectDao.add(project); - - User user2 = new User(); - user2.setLogin("login"); - user2.setCryptedPassword(cryptedPassword); - userService.addUser(user2); - - List<UserView> rows = userService.getAllUserRows(); - UserView userRow = null; - for (UserView userRow2 : rows) { - if (userRow2.getIdObject() == user2.getId()) - userRow = userRow2; - } - - assertNotNull(userRow); - - assertFalse(userService.userHasPrivilege(user2, PrivilegeType.ADD_MAP)); - assertFalse(userService.userHasPrivilege(user2, PrivilegeType.VIEW_PROJECT, project)); - - for (PrivilegeView pRow : userRow.getBasicPrivileges()) { - if (pRow.getType().equals(PrivilegeType.ADD_MAP)) { - pRow.setSelected(true); - } - } - - for (PrivilegeView pRow : userRow.getProjectPrivilegeByProjectId(project.getId()).getProjectPrivileges()) { - if (pRow.getType().equals(PrivilegeType.VIEW_PROJECT)) { - pRow.setSelected(true); - } - } - - userRow.setPassword(""); - - userService.updateUser(userRow); - - User user3 = userDao.getById(user2.getId()); - - // check if password didn't change - assertEquals(cryptedPassword, user3.getCryptedPassword()); - - assertTrue(userService.userHasPrivilege(user2, PrivilegeType.ADD_MAP)); - assertTrue(userService.userHasPrivilege(user2, PrivilegeType.VIEW_PROJECT, project)); - - for (PrivilegeView pRow : userRow.getBasicPrivileges()) { - if (pRow.getType().equals(PrivilegeType.ADD_MAP)) { - pRow.setSelected(false); - } - } - - for (PrivilegeView pRow : userRow.getProjectPrivilegeByProjectId(project.getId()).getProjectPrivileges()) { - if (pRow.getType().equals(PrivilegeType.VIEW_PROJECT)) { - pRow.setSelected(false); - } - } - - userRow.setPassword("new passwd"); - userService.updateUser(userRow); - - user3 = userDao.getById(user2.getId()); - - // check if password changed - assertFalse(cryptedPassword.equals(user3.getCryptedPassword())); - - assertFalse(userService.userHasPrivilege(user2, PrivilegeType.ADD_MAP)); - assertFalse(userService.userHasPrivilege(user2, PrivilegeType.VIEW_PROJECT, project)); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testRemoveUserRow() throws Exception { - try { - UserView userRow = userService.createEmptyUserRow(); - userService.deleteUser(userRow); - - User user2 = new User(); - user2.setLogin("login"); - userService.addUser(user2); - - List<UserView> rows = userService.getAllUserRows(); - userRow = null; - for (UserView userRow2 : rows) { - if (userRow2.getIdObject() == user2.getId()) - userRow = userRow2; - } - - assertNotNull(userRow); - - userService.deleteUser(userRow); - - rows = userService.getAllUserRows(); - - userRow = null; - for (UserView userRow2 : rows) { - if (userRow2.getIdObject() == user2.getId()) - userRow = userRow2; - } - - assertNull(userRow); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testCreateEmptyUserRow() { - try { - Project project = new Project(); - projectDao.add(project); - - UserView row = userService.createEmptyUserRow(); - - assertNotNull(row); - - long projectCount = projectDao.getCount(); - - assertEquals(projectCount, row.getProjectPrivileges().size()); - assertNotNull(row.getProjectPrivilegeByProjectId(project.getId())); - - for (UserProjectPrivilegeView upRow : row.getProjectPrivileges()) { - assertTrue(userViewFactory.getObjectTypes().size() >= upRow.getProjectPrivileges().size()); - } - assertEquals(userViewFactory.getBasicTypes().size(), row.getBasicPrivileges().size()); - - } catch (Exception e) { - e.printStackTrace(); - fail("Unknown exception"); - } - } - } diff --git a/service/src/test/java/lcsb/mapviewer/services/view/AllViewTests.java b/service/src/test/java/lcsb/mapviewer/services/view/AllViewTests.java index d8f1cf1cf5..476938b152 100644 --- a/service/src/test/java/lcsb/mapviewer/services/view/AllViewTests.java +++ b/service/src/test/java/lcsb/mapviewer/services/view/AllViewTests.java @@ -6,31 +6,29 @@ import org.junit.runners.Suite.SuiteClasses; @RunWith(Suite.class) @SuiteClasses({ AnnotationViewFactoryTest.class, // - AnnotationViewTest.class, // - CommentViewFactoryTest.class, // - CommentViewTest.class, // - ConfigurationViewFactoryTest.class, // - ConfigurationViewTest.class, // - DataMiningSetViewTest.class, // - DataMiningViewFactoryTest.class, // - DataMiningViewTest.class, // - FrameworkVersionViewTest.class, // - LayoutViewFactoryTest.class, // - LayoutViewTest.class, // - ModelViewFactoryTest.class, // - ModelViewTest.class, // - OverviewImageViewFactoryTest.class, // - OverviewImageViewTest.class, // - OverviewLinkViewFactoryTest.class, // - OverviewLinkViewTest.class, // - PrivilegeViewFactoryTest.class, // - PrivilegeViewTest.class, // - ProjectViewFactoryTest.class, // - ProjectViewTest.class, // - ReferenceGenomeViewFactoryTest.class, // - ReferenceGenomeGeneMappingViewFactoryTest.class, // - UserViewFactoryTest.class, // - UserViewTest.class, // + AnnotationViewTest.class, // + CommentViewFactoryTest.class, // + CommentViewTest.class, // + ConfigurationViewFactoryTest.class, // + ConfigurationViewTest.class, // + DataMiningSetViewTest.class, // + DataMiningViewFactoryTest.class, // + DataMiningViewTest.class, // + FrameworkVersionViewTest.class, // + LayoutViewFactoryTest.class, // + LayoutViewTest.class, // + ModelViewFactoryTest.class, // + ModelViewTest.class, // + OverviewImageViewFactoryTest.class, // + OverviewImageViewTest.class, // + OverviewLinkViewFactoryTest.class, // + OverviewLinkViewTest.class, // + PrivilegeViewFactoryTest.class, // + PrivilegeViewTest.class, // + ProjectViewFactoryTest.class, // + ProjectViewTest.class, // + ReferenceGenomeViewFactoryTest.class, // + ReferenceGenomeGeneMappingViewFactoryTest.class, // }) public class AllViewTests { diff --git a/service/src/test/java/lcsb/mapviewer/services/view/UserViewFactoryTest.java b/service/src/test/java/lcsb/mapviewer/services/view/UserViewFactoryTest.java deleted file mode 100644 index 993476aa48..0000000000 --- a/service/src/test/java/lcsb/mapviewer/services/view/UserViewFactoryTest.java +++ /dev/null @@ -1,46 +0,0 @@ -package lcsb.mapviewer.services.view; - -import static org.junit.Assert.*; -import lcsb.mapviewer.services.ServiceTestFunctions; - -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.springframework.beans.factory.annotation.Autowired; - -public class UserViewFactoryTest extends ServiceTestFunctions{ - - @Autowired - UserViewFactory userViewFactory; - - @Before - public void setUp() throws Exception { - } - - @After - public void tearDown() throws Exception { - } - - @Test - public void testCreateEmpty() throws Exception { - try { - Object object = userViewFactory.create(null); - assertNotNull(object); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testCreateGson() throws Exception { - try { - UserView object = userViewFactory.create(null); - assertNotNull(userViewFactory.createGson(object)); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - -} diff --git a/service/src/test/java/lcsb/mapviewer/services/view/UserViewTest.java b/service/src/test/java/lcsb/mapviewer/services/view/UserViewTest.java deleted file mode 100644 index 1ccae9a072..0000000000 --- a/service/src/test/java/lcsb/mapviewer/services/view/UserViewTest.java +++ /dev/null @@ -1,27 +0,0 @@ -package lcsb.mapviewer.services.view; - -import org.apache.commons.lang3.SerializationUtils; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -public class UserViewTest { - - @Before - public void setUp() throws Exception { - } - - @After - public void tearDown() throws Exception { - } - - @Test - public void testSerialization() { - try { - SerializationUtils.serialize(new UserView()); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } -} -- GitLab