private List<Worklog> filter(final ApplicationUser user, final List<Worklog> worklogs) { return worklogs.stream() .filter(w -> hasPermissionToView(user, w)) .collect(Collectors.toList()); }
public List<Worklog> getByIssueVisibleToUser(JiraServiceContext jiraServiceContext, Issue issue) { final List allWorklogs = getByIssue(jiraServiceContext, issue); final List<Worklog> visibleWorklogs = new ArrayList<Worklog>(allWorklogs.size()); for (final Object allWorklog : allWorklogs) { Worklog worklog = (Worklog) allWorklog; if (hasPermissionToView(jiraServiceContext.getLoggedInApplicationUser(), worklog)) { visibleWorklogs.add(worklog); } } return visibleWorklogs; }
@Override public PagedList<Worklog> getByIssueVisibleToUser(final JiraServiceContext jiraServiceContext, Issue issue, int pageSize) { PagedList<Worklog> worklogs = worklogManager.getByIssue(issue, pageSize); return new PredicatedPagedList<>(worklogs, worklog -> hasPermissionToView(jiraServiceContext.getLoggedInApplicationUser(), worklog)); }
@Override public ServiceOutcome<Set<Worklog>> getWorklogsForIds(final JiraServiceContext jiraServiceContext, final Set<Long> idsOfWorklogs) { if (idsOfWorklogs.size() > WORKLOG_UPDATE_DATA_PAGE_SIZE) { return new ServiceOutcomeImpl<>( ErrorCollections.create(jiraServiceContext.getI18nBean().getText("worklog.service.error.too.many.ids", WORKLOG_UPDATE_DATA_PAGE_SIZE), VALIDATION_FAILED)); } final Set<Worklog> filteredWorklogs = worklogManager.getWorklogsForIds(idsOfWorklogs) .stream() .filter(w -> hasPermissionToView(jiraServiceContext.getLoggedInApplicationUser(), w)) .collect(Collectors.toSet()); return new ServiceOutcomeImpl<>(ErrorCollections.empty(), filteredWorklogs); }
public Worklog getById(JiraServiceContext jiraServiceContext, Long id) { if (!isTimeTrackingEnabled()) { jiraServiceContext.getErrorCollection().addErrorMessage(jiraServiceContext.getI18nBean().getText("worklog.service.error.time.tracking.not.enabed")); return null; } final Worklog worklog = worklogManager.getById(id); if (worklog != null) { if (hasPermissionToView(jiraServiceContext.getLoggedInApplicationUser(), worklog)) { return worklog; } else { jiraServiceContext.getErrorCollection().addErrorMessage(jiraServiceContext.getI18nBean().getText("worklog.service.error.no.view.permission")); return null; } } else { jiraServiceContext.getErrorCollection().addErrorMessage(jiraServiceContext.getI18nBean().getText("worklog.service.error.no.worklog.for.id", id)); return null; } }