2015-11-10 5 views
3

Я хочу создать валидатор рабочего процесса, который не позволит репортеру проблемы выполнить определенные шаги из рабочего процесса. Для этого мне нужно как-то получить объект User или пользовательский идентификатор пользователя, выполняющего действие. Как я могу это сделать ?Получить текущего пользователя в валидаторе рабочего процесса jira

ответ

1

впрыскивать JiraAuthenticationContext А затем вызвать jiraAuthenticationContext.getLoggedInUser();

вы можно найти документацию о JiraAuthenticationContext: https://docs.atlassian.com/jira/5.0.1/com/atlassian/jira/security/JiraAuthenticationContext.html

+0

Я принимаю ваш ответ, хотя я оставлю его, как сейчас, с моим решением :) –

+0

Спасибо! :) Я рекомендую вам придерживаться метода atlassian API, поэтому проблем не будет. в случае незначительного обновления вашего экземпляра jira. – Goot

0

Вот как мне удалось это сделать:

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

+0

Не можете ли вы просто ввести «JiraAuthenticationContext» , а затем позвонить jiraAuthenticationContext.getUser(); ? – Goot

+0

Наверное, я могу. Просто я не знал, что такой класс существует :) –

+0

PS: authContext.getUser() кажется устаревшим –

 Смежные вопросы

  • Нет связанных вопросов^_^