@Override public WorklogResult validateCreate(JiraServiceContext jiraServiceContext, WorklogInputParameters params) { ApplicationUser user = jiraServiceContext.getLoggedInApplicationUser(); // Does the user have permission to create a worklog if (hasPermissionToCreate(jiraServiceContext, params.getIssue(), params.isEditableCheckRequired())) { Worklog worklog = validateParamsAndCreateWorklog(jiraServiceContext, params.getIssue(), user, params.getVisibility(), params.getTimeSpent(), params.getStartDate(), null, params.getComment(), null, null, null, params.getErrorFieldPrefix()); if (worklog != null) { return WorklogResultFactory.create(worklog, params.isEditableCheckRequired()); } } return null; }
protected Worklog create(JiraServiceContext jiraServiceContext, WorklogResult worklogResult, Long newEstimate, boolean dispatchEvent) { Worklog newWorklog = null; ApplicationUser user = jiraServiceContext.getLoggedInApplicationUser(); ErrorCollection errorCollection = jiraServiceContext.getErrorCollection(); if (worklogResult == null || worklogResult.getWorklog() == null) { errorCollection.addErrorMessage(getText(jiraServiceContext, "worklog.service.error.worklog.null")); return null; } if (worklogResult.getWorklog().getIssue() == null) { errorCollection.addErrorMessage(getText(jiraServiceContext, "worklog.service.error.issue.null")); return null; } // Re-do the permission check if (hasPermissionToCreate(jiraServiceContext, worklogResult.getWorklog().getIssue(), worklogResult.isEditableCheckRequired())) { newWorklog = worklogManager.create(user, worklogResult.getWorklog(), newEstimate, dispatchEvent); } return newWorklog; }