Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in
Celebration

Earn badges and make progress

You're on your way to the next level! Join the Kudos program to earn points and save your progress.

Deleted user Avatar
Deleted user

Level 1: Seed

25 / 150 points

Next: Root

Avatar

1 badge earned

Collect

Participate in fun challenges

Challenges come and go, but your rewards stay with you. Do more to earn more!

Challenges
Coins

Gift kudos to your peers

What goes around comes around! Share the love by gifting kudos to your peers.

Recognition
Ribbon

Rise up in the ranks

Keep earning points to reach the top of the leaderboard. It resets every quarter so you always have a chance!

Leaderboard

Jira UserManager.getUserByKey works only for the first user directory?

Michael Schlueter
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
Nov 15, 2017

I use the getUserByKey function of the UserManager in a scriptrunner groovy script to get an ApplicationUser instance. 

It seems that this works only for users in the first User Directory. Our first user directory is the Company Active Directory. The second one is the Jira internal directory. If I pass a user key from the internal directory to this function, it returns null. Do I have to use the UserSearchService in this case; the SDK documentation says nothing about this.

 

3 answers

1 accepted

0 votes
Answer accepted
Michael Schlueter
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
Nov 20, 2017

I have changed my implementation to use UserSearchService instead of the UserManager. The UserSearchService.getUserByName function works with users of both directories

I use Jira 8.20.5 and have the same issue.

What is the sense for performance if to use UserSearchService instead of the UserManager?

2 votes
Alexey Matveev
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
Nov 15, 2017

Hello,

I just checked it on my Jira verision (7.2.2). I put Active Directory first and Internal directory second. I can choose users from both user directories

Michael Schlueter
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
Nov 16, 2017

Hi Alexey,

that's strange. I tried the following code in the script runner console:

import com.atlassian.jira.user.util.UserManager
import com.atlassian.jira.component.ComponentAccessor

def userManager = ComponentAccessor.getUserManager() as UserManager
def user1 = userManager.getUserByKey("my.user1")
assert (user1)
def user2 = userManager.getUserByKey("my.user2")
assert (user2)

my.user1 is a regular user account in the active directory. my.user2 is a technical user account in the internal Jira directory (the secondary user directory).

The first call results in a valid user1 object. user2 contains null and the assertion fails.

Like Alfira Merinova likes this

I found issue cause in my case. I search user by key "johndoe". I get null for the user having user name like this

johndoe(doejohn)

And get normal information for this user

johndoe(johndoe)

It means UserManager.getUserByKey searches users taking into account the value in round braces only. The value outside the round braces is not taken into account. But I need exactly the value outside the round braces.

 

Solution: use getUserByName instead of getUserByKey.

 

I use Jira 8.20.5.

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events