public void setUserDepartment(UserDepartment userDepartment) { getUserDepartments().clear(); getUserDepartments().add(userDepartment); }
public void addUserDepartment(UserDepartment userDepartment) { getUserDepartments().add(userDepartment); }
private List<User> findUsersInDepartments(UserSelectedCriteria userSelectedCriteria, Collection<UserDepartment> departments) { List<User> allActiveUsers = userDao.findUsers(userSelectedCriteria.isOnlyActiveUsers()); List<User> matchingUsers = Lists.newArrayList(); for (User activeUser : allActiveUsers) { if (CollectionUtils.containsAny(activeUser.getUserDepartments(), departments)) { matchingUsers.add(activeUser); } } return matchingUsers; }
@Transactional(propagation = Propagation.REQUIRES_NEW) public void migrate() { LOGGER.info("Migrating user departments in user to a more flexible structure..."); List<LegacyUserDepartment> legacyUserDepartments = userDao.findLegacyUserDepartments(); int count = 0; for (LegacyUserDepartment legacyUserDepartment : legacyUserDepartments) { User user = userDao.findById(legacyUserDepartment.getUserId()); user.clearLegacyDepartment(); user.getUserDepartments().clear(); user.getUserDepartments().add(new UserDepartment(legacyUserDepartment.getDepartmentId())); userDao.persist(user); count++; } LOGGER.info(String.format("%d users found with legacy user department, all converted.", count)); } }
@Test public void should_process_many_to_many_column() throws InstantiationException, IllegalAccessException { FieldDefinition fieldDef = fieldDefinitionMap.get("user_to_department"); User user = UserObjectMother.createUser(); user.getUserDepartments().clear(); UserDepartment department = UserDepartmentObjectMother.createUserDepartment(); Map<Class<?>, Object> embeddables = Maps.newHashMap(); fieldDef.process(user, embeddables, department); assertEquals(1, user.getUserDepartments().size()); }
@Transactional public User persistEditedUser(User user) throws ObjectNotUniqueException { // check username uniqueness User dbUser = userDAO.findByUsername(user.getUsername()); if (dbUser != null && !dbUser.getUserId().equals(user.getUserId())) { throw new ObjectNotUniqueException("Username already in use"); } else if (dbUser == null) { dbUser = findUserOnId(user); } dbUser.setActive(user.isActive()); dbUser.setEmail(user.getEmail()); dbUser.setFirstName(user.getFirstName()); dbUser.setLastName(user.getLastName()); dbUser.getUserDepartments().clear(); dbUser.getUserDepartments().addAll(user.getUserDepartments()); dbUser.setUsername(user.getUsername()); boolean reAddPm = dbUser.getUserRoles().contains(UserRole.PROJECTMANAGER); dbUser.setUserRoles(user.getUserRoles()); if (reAddPm && !user.getUserRoles().contains(UserRole.PROJECTMANAGER)) { dbUser.addUserRole(UserRole.PROJECTMANAGER); } userDAO.persist(dbUser); return dbUser; }