4

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

任何人都可以帮我提供任何可用的脚本吗?

4

2 回答 2

1

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

import hudson.model.User

allUsers = User.getAll()
adminList = []

for (u in allUsers) {

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

println(adminList)
于 2018-07-11T01:12:54.420 回答
0

我使用以下脚本来创建管理员用户列表。该脚本还适用于基于矩阵的安全性。

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])
}
于 2019-11-14T15:01:23.197 回答