Отчет о неактивных пользователях - malikovalibek/groovyForJira GitHub Wiki

Обзор Отображение количества неактивных пользователей, принадлежащих к данному каталогу и группе.

пример Я руководитель проекта, у меня большая группа пользователей, и у меня закончились доступные пользователи по моей лицензии. Я могу запустить этот скрипт, чтобы увидеть отчет о том, сколько пользователей в группе неактивны.

Хорошо знать Этот сценарий запускается в консоли сценариев. Этот сценарий показывает: Пользователи, принадлежащие данному каталогу, Пользователи, принадлежащие данному каталогу и никогда не входившие в систему, Пользователи, принадлежащие данному каталогу и в данной группе, Пользователи, принадлежащие данному каталогу и данной группе и никогда не входившие в систему.

import com.atlassian.crowd.manager.directory.DirectoryManager import com.atlassian.jira.bc.security.login.LoginService import com.atlassian.jira.component.ComponentAccessor import static com.onresolve.scriptrunner.canned.util.OutputFormatter.markupBuilder

final directoryToCheck = 'Jira Internal Directory' final groupName = 'jira-users'

def loginManager = ComponentAccessor.getComponent(LoginService) def directoryManager = ComponentAccessor.getComponent(DirectoryManager) def groupManager = ComponentAccessor.groupManager def userManager = ComponentAccessor.userManager

def internalDirectoryId = directoryManager.findAllDirectories()?.find { it.name.toString().toLowerCase() == directoryToCheck.toLowerCase() }?.id def jiraUsersGroup = groupManager.getGroup(groupName)

// Get all users that belong to JIRA Internal Directory def allInternalDirectoryUsers = userManager.allApplicationUsers.findAll { it.directoryId == internalDirectoryId }

// Get all the users that belong to JIRA Internal Directory and have never logged in def internalDirectoryUsersNeverLoggedIn = allInternalDirectoryUsers?.findAll { !loginManager.getLoginInfo(it.username).lastLoginTime }

// Get all the users that belong to JIRA Internal Directory and to jira-users group def internalUsersBelongToGroup = allInternalDirectoryUsers?.findAll { groupManager.isUserInGroup(it, jiraUsersGroup) }

// Get all the users that belong to JIRA Internal Directory and to jira-users group and have never logged in def jiraUsersHaveNeverLoggedIn = internalDirectoryUsersNeverLoggedIn?.findAll { groupManager.isUserInGroup(it, jiraUsersGroup) }

markupBuilder { p("Users in Jira Internal Directory: ${allInternalDirectoryUsers?.size()}") p("Users in Jira Internal Directory and have never logged in: ${internalDirectoryUsersNeverLoggedIn?.size()}") p("Users in Jira Internal Directory and in jira-users group: ${internalUsersBelongToGroup?.size()}") p("Users in Jira Internal Directory and in jira-users group and have never logged in: ${jiraUsersHaveNeverLoggedIn?.size()}") }