PageRenderTime 55ms CodeModel.GetById 28ms RepoModel.GetById 1ms app.codeStats 0ms

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

https://bitbucket.org/sorin/scriptrunner-public-sorin
Groovy | 61 lines | 47 code | 10 blank | 4 comment | 4 complexity | 716e5e9c95e408088a848f71c5aebdb7 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. }