@Override public String toString() { return new ToStringBuilder(this).append("userId", getUserId()) .append("username", getUsername()) .append("lastName", getLastName()) .append("firstName", getFirstName()) .toString(); }
@Transactional public void deleteDepartment(Integer departmentId) { UserDepartment department = userDepartmentDAO.findById(departmentId); LOGGER.info("Deleting department: " + department); for (User user : department.getUsers()) { LOGGER.info("Deleting user: " + user); deleteUser(user.getUserId()); } userDepartmentDAO.delete(department); }
@Override @Transactional public void validatePMRoles(Project project) { userService.validateProjectManagementRoles(project.getProjectManager() == null ? null : project.getProjectManager().getUserId()); }
protected List<ProjectAssignment> getAssignmentsWithoutBookings(DateRange reportRange, List<Integer> userIds, List<Integer> projectIds) { List<ProjectAssignment> assignmentsWithoutBookings = reportAggregatedDao.getAssignmentsWithoutBookings(reportRange); List<ProjectAssignment> filteredAssignmentsWithoutBookings = Lists.newArrayList(); for (ProjectAssignment assignmentsWithoutBooking : assignmentsWithoutBookings) { boolean passedUserFilter = isEmpty(userIds) || userIds.contains(assignmentsWithoutBooking.getUser().getUserId()); boolean passedProjectFilter = isEmpty(projectIds) || projectIds.contains(assignmentsWithoutBooking.getProject().getProjectId()); if (passedUserFilter && passedProjectFilter) { filteredAssignmentsWithoutBookings.add(assignmentsWithoutBooking); } } return filteredAssignmentsWithoutBookings; }
@Override @Transactional public void persistNewUser(User user, String password) 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"); } // encrypt password user.setSalt((int) (Math.random() * 10000)); user.setPassword(encryptPassword(password, user.getSalt())); userDAO.persist(user); // assign new users to default projects projectAssignmentManagementService.assignUserToDefaultProjects(user); }
@Transactional public void deleteAllTimesheetDataForUser(User user) { timesheetCommentDAO.deleteCommentsForUser(user.getUserId()); if (user.getProjectAssignments() != null && !user.getProjectAssignments().isEmpty()) { timesheetDAO.deleteTimesheetEntries(DomainUtil.getIdsFromDomainObjects(user.getProjectAssignments())); } }
/** * Get week overview for a date. Week number of supplied requested week is used */ public WeekOverview getWeekOverview(User user, Calendar requestedWeek) { Calendar reqWeek = (Calendar) requestedWeek.clone(); reqWeek.setFirstDayOfWeek(configuration.getFirstDayOfWeek()); DateRange range = DateUtil.getDateRangeForWeek(reqWeek); List<TimesheetEntry> timesheetEntries = timesheetDAO.getTimesheetEntriesInRange(user.getUserId(), range); TimesheetComment comment = timesheetCommentDAO.findById(new TimesheetCommentId(user.getUserId(), range.getDateStart())); List<ProjectAssignment> assignments = projectAssignmentService.getProjectAssignmentsForUser(user.getUserId(), range); Seq<Interval> lockedDatesAsIntervals = timesheetLockService.findLockedDatesInRange(range.getDateStart(), range.getDateEnd(), user); List<Date> lockedDates = TimesheetLockService$.MODULE$.intervalToJavaDates(lockedDatesAsIntervals); return new WeekOverview(timesheetEntries, comment, assignments, range, user, lockedDates); } }
/** * Fetch the timesheet overview for a user. This returns an object containing the project assignments for the * requested month and a list with all timesheet entries for that month. * * @param requestedMonth only the month and year of the calendar is used * @return TimesheetOverviewAction * @throws ObjectNotFoundException */ public TimesheetOverview getTimesheetOverview(User user, Calendar requestedMonth) { TimesheetOverview overview = new TimesheetOverview(); DateRange monthRange = DateUtil.calendarToMonthRange(requestedMonth); overview.setProjectStatus(getProjectStatus(user.getUserId(), monthRange)); List<TimesheetEntry> timesheetEntries = timesheetDAO.getTimesheetEntriesInRange(user.getUserId(), monthRange); Map<Integer, List<TimesheetEntry>> calendarMap = entriesToCalendarMap(timesheetEntries); overview.setTimesheetEntries(calendarMap); return overview; }
/** * Assign user to default projects */ @Transactional @Auditable(actionType = AuditActionType.UPDATE) public User assignUserToDefaultProjects(User user) { List<Project> defaultProjects = projectDao.findDefaultProjects(); for (Project project : defaultProjects) { ProjectAssignment assignment = ProjectAssignment.createProjectAssignment(project, user); if (!isAlreadyAssigned(assignment, user.getProjectAssignments())) { LOGGER.debug("Assigning user " + user.getUserId() + " to default project " + project.getName()); user.addProjectAssignment(assignment); persistNewProjectAssignment(assignment); } } return user; }
@Test public void when_finding_should_set_proper_id_for_generated_int() { User user = subject.find(1, User.class); assertEquals(1, user.getUserId().intValue()); }
@Test public void shouldChangeUsername() throws ObjectNotUniqueException { User user = UserObjectMother.createUser(); User persistedUser = new User(); when(userDAO.findByUsername(user.getUsername())).thenReturn(null); when(userDAO.findById(user.getUserId())).thenReturn(persistedUser); when(userDAO.persist(persistedUser)).thenReturn(persistedUser); userService.persistEditedUser(user); verify(userDAO).persist(persistedUser); } }
@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; }
@Test public void shouldPersist() { UserDepartment org = UserDepartmentObjectMother.createUserDepartment(); User user = UserObjectMother.createUser(); user.setUserId(5); ProjectAssignment assignment = new ProjectAssignment(); assignment.setUser(user); assignment.setAssignmentId(1); assignment.setProject(new Project(1)); assignment.setAssignmentType(new ProjectAssignmentType(EhourConstants.ASSIGNMENT_DATE)); Set<ProjectAssignment> assignments = Sets.newHashSet(assignment); user.setUserDepartment(org); user.setProjectAssignments(assignments); userDao.persist(user); assertNotNull(user.getUserId()); }
public static FlatReportElement buildFlatReportElement(ProjectAssignment assignment) { FlatReportElement element = new FlatReportElement(); element.setAssignmentId(assignment.getAssignmentId()); element.setRole(assignment.getRole()); Project project = assignment.getProject(); Customer customer = project.getCustomer(); element.setCustomerCode(customer.getCode()); element.setCustomerId(customer.getCustomerId()); element.setCustomerName(customer.getName()); element.setEmptyEntry(true); element.setProjectCode(project.getProjectCode()); element.setProjectId(project.getProjectId()); element.setProjectName(project.getName()); element.setRate(assignment.getHourlyRate()); User user = assignment.getUser(); element.setUserId(user.getUserId()); element.setUserFirstName(user.getFirstName()); element.setUserLastName(user.getLastName()); element.setDisplayOrder(1); return element; } }