Last active
November 1, 2023 16:32
-
-
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.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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