Как получить список пользователей, у которых нет прав администратора ( Groovy + jenkins)

Как получить список пользователей, у которых нет прав администратора ( Groovy + jenkins)


def inst = Jenkins.getInstanceOrNull()
def strategy = inst.getAuthorizationStrategy()
def adminUserList = User.getAll().findAll { user ->
    strategy.hasPermission(user.id, Jenkins.ADMINISTER)
}

Это дает мне список пользователей, у которых есть привилегия ADMINISTER. Как получить список всех пользователей, у которых нет прав ADMINISTER.

"DevOps: Jenkins & AWS Series, часть 5: Установка Gradle на Ubuntu 22.04
"DevOps: Jenkins & AWS Series, часть 5: Установка Gradle на Ubuntu 22.04
В этой статье блога мы проведем вас через процесс установки Gradle на Ubuntu 22.04, интеграции его с Jenkins и создания задания Gradle. Мы...
0
0
27
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы можете просто вычесть adminUserList из allUserList, и вы получите пользователей без прав администратора.

def inst = Jenkins.getInstanceOrNull()
def strategy = inst.getAuthorizationStrategy()
def adminUserList = User.getAll().findAll { user ->
    strategy.hasPermission(user.id, Jenkins.ADMINISTER)
}
def allUserList = User.getAll()
print allUserList - adminUserList
Ответ принят как подходящий

Простое отрицание помогло получить ожидаемый результат:

def inst = Jenkins.getInstanceOrNull()
def strategy = inst.getAuthorizationStrategy()
def adminUserList = User.getAll().findAll { user ->
    !strategy.hasPermission(user.id, Jenkins.ADMINISTER)
}

Просто изменил «strategy.hasPermission» на «!strategy.hasPermission», это дало ожидаемый результат.

Другие вопросы по теме