Как получить список пользователей, у которых нет прав администратора ( Groovy + jenkins)
def inst = Jenkins.getInstanceOrNull()
def strategy = inst.getAuthorizationStrategy()
def adminUserList = User.getAll().findAll { user ->
strategy.hasPermission(user.id, Jenkins.ADMINISTER)
}
Это дает мне список пользователей, у которых есть привилегия ADMINISTER. Как получить список всех пользователей, у которых нет прав ADMINISTER.
Вы можете просто вычесть 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», это дало ожидаемый результат.