Getting error message when non jira admin perfoming User Creation transition

Vikrant Yadav
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
May 3, 2021

Hi Guys,

I am trying to create self service portal of the JIRA users, so that user can create new jira users account. Like user visit Self Service Project >> Fill the fields >> Click Create and user create in system. For this  I have added post function , scripted email,.. everythingis fine. Even able to create new users when i am creating issue in jira and performing transition. When user performing they are getting error. You dont haveCreate User error.PNG permission to perform this transition. How can i perform "Create User" transition as JIRA Admin using Fast track transition of Script runner. 
even create button not work for them. Please help 

@Nic Brough -Adaptavist- 

 

 

1 answer

1 accepted

0 votes
Answer accepted
Vikrant Yadav
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
May 4, 2021
Martin Bayer _MoroSystems_ s_r_o__
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
May 5, 2021

Hi @Vikrant Yadav can you share the Groovy source code of the executed postfunction? You will have to execute the whole script under admin user account (you can do it programatically).

Vikrant Yadav
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
May 5, 2021

Hi @Martin Bayer _MoroSystems_ s_r_o__  Thanks for the reply. Here is complete Custom Script Post function , What do  i need to add so that this post fucntion run as Admin. So that users can perform this transition. 

 

import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.label.LabelManager

def currentUser = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()
def cfMgr = ComponentAccessor.getCustomFieldManager()
def email = issue.getCustomFieldValue(cfMgr.getCustomFieldObjectByName("Email Address"))toString()
def Username = issue.getCustomFieldValue(cfMgr.getCustomFieldObjectByName("Username"))toString()
def summary = issue.getSummary()

import com.atlassian.jira.bc.user.UserService
import com.atlassian.jira.component.ComponentAccessor

// the username of the new user - needs to be lowercase and unique - required
final String userName = Username

// The password for the new user - if empty a random password will be generated
final String password = ""

// The email address for the new user - required
final String emailAddress = email

// The display name for the new user - required
final String displayName = summary

// notifications are sent by default, set to false to not send a notification
final boolean sendNotification = false

def loggedInUser = ComponentAccessor.jiraAuthenticationContext.loggedInUser
def userService = ComponentAccessor.getComponent(UserService)

def newCreateRequest = UserService.CreateUserRequest.withUserDetails(loggedInUser, userName, password, emailAddress, displayName)
.sendNotification(sendNotification)

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

userService.createUser(createValidationResult)

Martin Bayer _MoroSystems_ s_r_o__
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
May 6, 2021

Hi @Vikrant Yadav did you try to use some admin user as 1st argument of withUserDetails method (https://docs.atlassian.com/software/jira/docs/api/7.6.1/com/atlassian/jira/bc/user/UserService.CreateUserRequest.html#withUserDetails-com.atlassian.jira.user.ApplicationUser-java.lang.String-java.lang.String-java.lang.String-java.lang.String-)?

It can look like:

 


userManager = ComponentAccessor.getUserManager()
adminUser = userManager.getUserByName("admin")
def newCreateRequest = UserService.CreateUserRequest.withUserDetails(adminUser, userName, password, emailAddress, displayName)
.sendNotification(sendNotification)
Like Vikrant Yadav likes this
Vikrant Yadav
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
May 6, 2021

Hi @Martin Bayer _MoroSystems_ s_r_o__  It works....i hadn't try to run it as admin user. I was using logged in User. Thanks a lot, mate

 

Cheers 

Vikrant Yadav

Martin Bayer _MoroSystems_ s_r_o__
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
May 7, 2021

You're welcome :)

Suggest an answer

Log in or Sign up to answer