Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save vikrantyadav11/61a04c6f05a8fb719e773ab42b1b5b67 to your computer and use it in GitHub Desktop.

Select an option

Save vikrantyadav11/61a04c6f05a8fb719e773ab42b1b5b67 to your computer and use it in GitHub Desktop.
Use this script in Script Console to get the list of all users. True for Active Users and False for Inactive users.
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.security.login.LoginManager
import java.text.SimpleDateFormat;
import java.util.Date;
import com.atlassian.jira.user.util.UserUtil
UserUtil userUtil = ComponentAccessor.getUserUtil()
def loginManager = ComponentAccessor.getComponentOfType(LoginManager.class)
//def users=ComponentAccessor.UserManager.getAllApplicationUsers()
def groupManager = ComponentAccessor.getGroupManager()
def adminGroup = groupManager.getUsersInGroup('jira-administrators')
def softwareGroup = groupManager.getUsersInGroup('jira-users')
//def serviceDeskGroup = groupManager.getUsersInGroup('jira-servicedesk-users')
def users = adminGroup + softwareGroup
users.unique()
StringBuilder builder=new StringBuilder()
builder.append("<table border = 1><tr><td><b>User Name</b></td><td><b>Full Name</b></td><td><b>eMail Address</b></td><td><b>Last Login</b></td><td><b>Status</b></td></tr>")
users.each{
Long lastLoginTime = loginManager.getLoginInfo(it.username).getLastLoginTime()
String activeStatus=it.active
if(userUtil.getGroupsForUser(it.getName()).size() == 0)
//builder.append("<tr><td>"+it.username+"</td><td>"+it.displayName+"</td><td>"+it.emailAddress+"</td><td>No Group added</td><td>"+it.active+"</td></tr>")
return
else if(activeStatus=="false")
builder.append("<tr><td>"+it.username+"</td><td>"+it.displayName+"</td><td>"+it.emailAddress+"</td><td>Inactive User</td><td>"+it.active+"</td></tr>")
else if(lastLoginTime==null)
builder.append("<tr><td>"+it.username+"</td><td>"+it.displayName+"</td><td>"+it.emailAddress+"</td><td>Logon not found</td><td>"+it.active+"</td></tr>")
else{
Date date=new Date(lastLoginTime);
SimpleDateFormat df2 = new SimpleDateFormat("dd/MM/yy hh:mm");
String dateText = df2.format(date);
builder.append("<tr><td>"+it.username+"</td><td>"+it.displayName+"</td><td>"+it.emailAddress+"</td><td>"+dateText+"</td><td>"+it.active+"</td></tr>")
}
}
builder.append("</table>")
return builder
@vikrantyadav11

Copy link
Copy Markdown
Author

Above query gives
Name, Email Address, Username, Last Login Date, Status ( Active or Inactive)
For Active User >> Status is True
For Inactive User >> Status is False

@CasperHCH

Copy link
Copy Markdown

any easy way to just not display the disabled users?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment