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

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


1 badge earned


Participate in fun challenges

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


Gift kudos to your peers

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


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!


Come for the products,
stay for the community

The Atlassian Community can help you and your team get more value out of Atlassian products and practices.

Atlassian Community about banner
Community Members
Community Events
Community Groups

JIRA finding users for a given directory

Hi all,

I have what I thought would be a very easy operation, but I am a little stuck.  We have 2 users directories:

  1. JIRA Internal
  2. LDAP

The JIRA internal should be just used for my administration and the like, but I just stumbled across a user who was internal.  So I need to find all users who are internal so I can get them to start using ldap ID instead.  I go to user and there is no directory filter.  Also I cannot click on the column title to sort by Directory.  

All I need is to find all users who are part of the JIRA internal directory.  Is there a way to do this?

(I did find this on migrating users but I do not have the option Migrate users from one directory to another under User Directories)

Thanks in advance!



6 answers

2 accepted

7 votes
Answer accepted

Only way I know of is to query the database directly.... something like this ought to do the trick:

SELECT * FROM cwd_user
WHERE directory_id = 1

Really? interacting directly with the database? Wow. I think I will submit that as a feature request as it seems very easy and I could really see the usage. Thanks! Robert

Like Espen Sandall likes this

BTW that worked great. Thanks again.

Robert: did you find or submit a feature request for this?

No, I used Jordan's database query and that gave me what I needed.

Using the JIRA internal database is very dangerous.  I strongly recommend using a separate mysql database.   However here is how: 

Something via the UI would be nice.

Like Espen Sandall likes this
1 vote
Answer accepted

I found a macro on-line and modified it a little. It gets the KEY for the user directory. I haven't been able to get the name, but no biggie. Look at the user to see the actual user directory and learn what the two numbers mean. Here's the template:

## Macro title: Last Login
## Macro has a body: N
## Body processing: Selected body processing option
## Output: Selected output option
## Developed by: Andrew Frayling
## Modified by: Michael Seager [Atlassian Support]
## Mofified by: Salim Morgan (STCS, Riyadh)
## Date created: 11/02/2012
## Installed by: <your name>
## Macro to display the last login date of users who have access to the current space
## @noparams

#set($containerManagerClass = $content.class.forName('com.atlassian.spring.container.ContainerManager'))
#set($getInstanceMethod = $containerManagerClass.getDeclaredMethod('getInstance',null))
#set($containerManager = $getInstanceMethod.invoke(null,null))
#set($containerContext = $containerManager.containerContext)
#set($loginManager = $containerContext.getComponent('loginManager'))
#set($users = $userAccessor.getUsers())

<table class="confluenceTable">
<th class="confluenceTh">Count</th>
<th class="confluenceTh">User</th>
<th class="confluenceTh">Login Name</th>
<th class="confluenceTh">Last Successful Login</th>
<th class="confluenceTh">Directory</th>

#set($count = 0)

#foreach($user in $users)
## list the last login date of users who can view the current space
#if ($permissionHelper.canView($user, $space))
#set($count = $count + 1)
<td class="confluenceTd">$count</td>
<td class="confluenceTd">#usernameLink($</td>
<td class="confluenceTd">$</td>
<td class="confluenceTd">$action.dateFormatter.formatDateTime($loginManager.getLoginInfo($</td>
<td class="confluenceTd">$user.directoryId</td>


It worked for our Confluence server.

You can also look them up using scriptrunner script console

import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.user.ApplicationUser

def userManager = ComponentAccessor.userManager

def allUsers = userManager.allUsers

List<ApplicationUser> results = []

allUsers.each {
if (it.directoryId == 1L) {

def prettyPrint = ""

results.each {
prettyPrint += it.displayName + "(" + + ") - Active: " + + "<br>"


Hi @Joachim Brechtel 

I'm trying to adapt your scriptrunner script above to additionally include "email address" in the prettyPrint results of the Jira user directory. It's already working fine and showing displayname, username and active flag. Any advice would be much appreciated.



Hi @Tim_C ,

you can use

prettyPrint += it.displayName + "(" + + ") - Active: " + + ", Email: " + it.emailAddress + "<br>"

The result contains a list of com.atlassian.jira.user.ApplicationUser. You can find the API reference here:

Best, Joachim

Hi @Joachim Brechtel - perfect, thanks for your very quick response. 

@Joachim Brechtel , thank you! I took you script to use for mine as well. Here is my final script.

import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.user.ApplicationUser

def userManager = ComponentAccessor.userManager

def allUsers = userManager.allUsers

List<ApplicationUser> results = []

allUsers.each {
if (it.directoryId == 1L && it.emailAddress ==~ /(?s).*kambi.*/ && == true) {

def prettyPrint = ""

results.each {
prettyPrint += it.displayName + "(" + + ") - Email: " + it.emailAddress + "<br>"


 Just one question, this line

def allUsers = userManager.allUsers

Is showing a warning saying not to pull allusers if not needed. What should be the fix? 

Hi @marco@Marc Jason Mutuc ,

the warning just indicates that this method may cause performance impact (it is also deprecated, so it might not work in future).

The solution would be to take and build a query which includes all users. But as long as Atlassian keeps the method, I would continue to use it.

Can this functionality be added to the UI so that was can easily search users from a particular user directory (Internal, LDAP, Crowd)

I guess this is a no and we can't vote on it, since no one ever answered. It would make my life far easier to manage the 2000+ users we have.

Like Espen Sandall likes this

Submitted JRASERVER-65844 to add a filter on the "user management" screen.

Is there an update on this issue or do we still have to do this with SQL?

Suggest an answer

Log in or Sign up to answer

Atlassian Community Events