Я хочу создать валидатор рабочего процесса, который не позволит репортеру проблемы выполнить определенные шаги из рабочего процесса. Для этого мне нужно как-то получить объект User или пользовательский идентификатор пользователя, выполняющего действие. Как я могу это сделать ?Получить текущего пользователя в валидаторе рабочего процесса jira
ответ
впрыскивать 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
Не можете ли вы просто ввести «JiraAuthenticationContext» , а затем позвонить jiraAuthenticationContext.getUser(); ? – Goot
Наверное, я могу. Просто я не знал, что такой класс существует :) –
PS: authContext.getUser() кажется устаревшим –
Я принимаю ваш ответ, хотя я оставлю его, как сейчас, с моим решением :) –
Спасибо! :) Я рекомендую вам придерживаться метода atlassian API, поэтому проблем не будет. в случае незначительного обновления вашего экземпляра jira. – Goot