Получить текущего пользователя в валидаторе рабочего процесса jira
Я хочу создать валидатор рабочего процесса, который не позволит репортеру проблемы выполнить определенные шаги из рабочего процесса. Для этого мне нужно как-то получить объект User или идентификатор пользователя, выполняющего действие. Как я могу это сделать?
2 ответа
Решение
Ввести JiraAuthenticationContext
А потом позвони jiraAuthenticationContext.getLoggedInUser();
вы можете найти документацию о JiraAuthenticationContext здесь: https://docs.atlassian.com/jira/5.0.1/com/atlassian/jira/security/JiraAuthenticationContext.html
Вот как мне удалось это сделать:
private String getCurrentIssueProcessorId(Map<?, ?> transientVars, Map<?, ?> args){
String processorId = (String) args.get(ARG_USER_NAME);
if(null == processorId || processorId.isEmpty()){
WorkflowContext workflowContext = (WorkflowContext) transientVars.get(ARG_CONTEXT);
processorId = workflowContext.getCaller();
}
if(logger.isDebugEnabled()){
logger.debug("Issue processor: " + processorId);
}
return processorId;
}
где ARG_CONTEXT
это строка context
а также ARG_USER_NAME
это строка username