Отчет о неактивных пользователях - 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()}") }