I'm trying to retrieve users who's account is active, but who either haven't logged in for 90 days, or who's never logged in.
With the script below i get users as expected based on login times/no login, but it also returns users who's been deactivated.
import com.atlassian.jira.user.util.UserManager
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.security.login.LoginManager
def userManager = ComponentAccessor.getUserManager()
def loginManager = ComponentAccessor.getComponent(LoginManager)
ArrayList oldUsers = new ArrayList()
Date today = new Date()
//CHANGE TO DESIRED AMOUNT
int threshold = 90
userManager.allApplicationUsers.toList().each { user ->
def loginfo = loginManager.getLoginInfo(user.username)
if (loginfo.getLastLoginTime() == null) {
oldUsers.add(user.displayName)
}
else {
def lastLogOn = new Date(loginfo.getLastLoginTime())
def difference = today.minus(lastLogOn)
if (difference >= threshold) {
oldUsers.add(user.displayName)
oldUsers.add(lastLogOn)
}
}
}
return oldUsers