Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

TransitionValidation fails in create issue listener

Oleksii Okhmush
Contributor
April 7, 2020

Hello everyone!

I try ty make a script, that creates user in Jira, added comment to task with login/password and then close the issue.

If i try it in Script Console everything works fine, but if i try to use Script Listener with "Issue created" event, i can't transition issue

 

import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.fields.CustomField
import com.atlassian.jira.event.type.EventDispatchOption
import com.atlassian.jira.bc.user.UserService
import com.atlassian.jira.issue.IssueInputParametersImpl
def customFieldManager = ComponentAccessor.getCustomFieldManager()
def admin = ComponentAccessor.getUserManager().getUserByKey('admin')
def commentManager = ComponentAccessor.commentManager
def userService = ComponentAccessor.getComponent(UserService)
def userUtil = ComponentAccessor.getUserUtil()
def issueService = ComponentAccessor.getIssueService()
final boolean sendNotification = false
Issue issue = issue as Issue
if (issue.issueType.name=="New user") {
String email = issue.getCustomFieldValue(customFieldManager.getCustomFieldObject("customfield_11700"))
String name = issue.getCustomFieldValue(customFieldManager.getCustomFieldObject("customfield_11702"))
List email_list
String login
String password = "123456789"
def actionId = 11
def transitionValidationResult = issueService.validateTransition(admin, issue.id, actionId, new IssueInputParametersImpl())
def group = userUtil.getGroup("cw-freelance")
if (email =~ /^([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5})$/) {
email_list = (email =~ /^([a-zA-Z0-9_\-\.]*)/)[0] as List
log.warn(email_list)
login = email_list[0] as String
log.warn(login)
def user = ComponentAccessor.getUserManager().getUserByKey(login)

if (!user) {
def newCreateRequest = UserService.CreateUserRequest.withUserDetails(admin, login, password, email, name)
.sendNotification(sendNotification)

def createValidationResult = userService.validateCreateUser(newCreateRequest)
assert createValidationResult.isValid(): createValidationResult.errorCollection

userService.createUser(createValidationResult)
def new_user = ComponentAccessor.getUserManager().getUserByKey(login)
userUtil.addUserToGroup(group, new_user)
commentManager.create(issue, admin, "Новый пользователь:\nlogin: " + login + "\npassword: " + password, true)
issueService.transition(admin, transitionValidationResult)
} else {
commentManager.create(issue, admin, "пользователь уже существует: " + user.displayName, true)
issueService.transition(admin, transitionValidationResult)
}

} else {
commentManager.create(issue, admin, "Ошибка в почте", true)
log.warn("bad email")


}

}else{
return null
}

 

What should i do, to avoid this?

0 answers

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events