如何通过任何脚本获取Jenkins中的管理员用户列表?

时间:2018-07-10 21:58:06

标签: jenkins automation jenkins-cli jenkins-api

我正在尝试获取管理员用户列表的列表,以及Jenkins中的用户及其权限级别。

任何人都可以通过任何可用脚本帮助我。

2 个答案:

答案 0 :(得分:0)

您可以使用groovy脚本检索所有用户,如下所示:

import hudson.model.User

allUsers = User.getAll()
adminList = []

for (u in allUsers) {

    if (u.hasPermission(Jenkins.ADMINISTER)) {
        adminList.add(u)
    }
}

println(adminList)

答案 1 :(得分:0)

我使用以下脚本创建管理员用户列表。该脚本还可以与基于Matrix的安全性一起使用。

import hudson.model.User

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

所有具有其权限的用户都可以按以下方式访问:

import hudson.model.User
import hudson.security.Permission
def inst = Jenkins.getInstanceOrNull()
def strategy = inst.getAuthorizationStrategy()
strategy.getMetaPropertyValues().find { it.getName() == 'grantedPermissions'}.each {
    // it.value is a map with permission as key and the corresponding users as value
    print(it.value[Permission.READ])
    print(it.value[Permission.WRITE])
    print(it.value[Permission.HUDSON_ADMINISTER])
}