PageRenderTime 37ms CodeModel.GetById 9ms RepoModel.GetById 0ms app.codeStats 0ms

/src/test/resources/examples/AssignSubTass.groovy

https://bitbucket.org/sorin/jira-plugin-intellij
Groovy | 61 lines | 47 code | 10 blank | 4 comment | 4 complexity | 3ae09ce2b147d9481468a822df7149d3 MD5 | raw file
  1. import com.atlassian.jira.ComponentManager
  2. import com.atlassian.jira.issue.CustomFieldManager
  3. import com.atlassian.jira.issue.Issue
  4. import com.opensymphony.user.Group
  5. import com.atlassian.jira.issue.MutableIssue
  6. import com.atlassian.jira.config.SubTaskManager
  7. import org.ofbiz.core.entity.GenericValue
  8. import com.opensymphony.user.User
  9. import com.atlassian.core.user.UserUtils
  10. import com.atlassian.jira.user.util.UserManager
  11. import com.opensymphony.workflow.WorkflowContext
  12. import com.atlassian.jira.security.util.GroupSelectorUtils
  13. ComponentManager componentManager = ComponentManager.getInstance()
  14. CustomFieldManager customFieldManager = componentManager.getCustomFieldManager()
  15. def issueFactory = componentManager.getIssueFactory()
  16. def issueManager = componentManager.getIssueManager()
  17. def indexManager = componentManager.getIndexManager()
  18. def groupCf = customFieldManager.getCustomFieldObjectByName("Kompetenzcluster") // name of group CF
  19. def UserList = []
  20. String currentUser = ((WorkflowContext) transientVars.get("context")).getCaller()
  21. User currentUserObj = UserUtils.getUser(currentUser)
  22. GroupSelectorUtils util = (GroupSelectorUtils) ComponentManager.getInstance().getContainer().getComponentInstanceOfType(GroupSelectorUtils.class)
  23. //Group group = issue.getCustomFieldValue(groupCf) as Group
  24. issue.getCustomFieldValue(groupCf).each {Object group ->
  25. if (group) {
  26. Group groupObj = util.getGroups((String) group)
  27. groupObj.getUsers().each {String user ->
  28. if(!UserList.contains(user) && user != currentUser) {
  29. MutableIssue newIssue = issueFactory.getIssue()
  30. newIssue.summary = "$user: " + issue.summary
  31. newIssue.issueTypeId = '71'
  32. newIssue.project = issue.project
  33. newIssue.reporter = UserUtils.getUser(user)
  34. newIssue.assignee = UserUtils.getUser(user)
  35. newIssue.assigneeId = user
  36. newIssue.priority = issue.priority
  37. //newIssue.affectedVersions = issue.affectedVersions
  38. //newIssue.fixVersions = issue.fixVersions
  39. Map<String,Object> newIssueParams = ["issue":newIssue] as Map<String,Object>
  40. //User currentUser = componentManager.getJiraAuthenticationContext().getUser()
  41. GenericValue newIssueGv = issueManager.createIssue(currentUserObj, newIssueParams)
  42. indexManager.reIndex(newIssueGv);
  43. SubTaskManager subTaskManager = componentManager.getSubTaskManager()
  44. subTaskManager.createSubTaskIssueLink(issue, newIssue, componentManager.getJiraAuthenticationContext().getUser())
  45. indexManager.reIndex(newIssueGv);
  46. indexManager.reIndex(issue);
  47. UserList.add(user)
  48. }
  49. }
  50. }
  51. }