groovy - 如何使用 groovy 脚本识别 Jenkins 上的管理员

标签 groovy jenkins automation jenkins-plugins

我希望能够检查运行该作业的当前构建用户是否为 admin。我使用了一些 API 来找出管理员用户列表,如下所示

import jenkins.model.Jenkins
import hudson.model.User
import hudson.security.Permission

allUsers = User.getAll()
adminList = []
for (u in allUsers) {
 if (u.hasPermission(Jenkins.ADMINISTER)) {
 // if (u.canDelete()) {
   adminList.add(u)
  }
}
println allUsers 
println adminList

但总是两个用户列表(管理员和平均乔斯)是相同的,是的,我敢肯定,并非所有用户都是我的 jenkins 服务器中的管理员 :)

最佳答案

import jenkins.model.Jenkins
import hudson.model.User

allUsers = User.getAll()
adminList = []
authStrategy = Jenkins.instance.getAuthorizationStrategy()

for (u in allUsers) {
    if (authStrategy.hasPermission(u.toString(), Jenkins.ADMINISTER)) {
        adminList.add(u)
    }
}

println(adminList)

关于groovy - 如何使用 groovy 脚本识别 Jenkins 上的管理员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28953687/

相关文章:

grails - Grails Groovy-无法从另一个类访问静态 map (集合)

gradle - 使用Gradle归档文件时,可以从某些文件中删除一些行吗?

jenkins - Job DSL 中的条件循环

groovy - 将 int 数组的字符串表示形式转换为常规列表

bash - Dockerfile从中运行bash脚本时引发错误

unit-testing - Mstest [ClassCleanup] 在 VS 2019 中根本没有执行

jenkins - 如何在Jelastic托管的kubernetes中配置服务入口?

powershell - 如何在我的 Powershell 脚本中使用 Jenkins 变量

excel - 使用 Excel 的 Delphi Ole Automation 获取文本而不是值

java - 我的设备已获得授权,但在我运行登录测试后,它说要再次授权 -QA Tester