【问题标题】:How to identify admins on Jenkins using groovy scripts如何使用 groovy 脚本识别 Jenkins 上的管理员
【发布时间】:2015-05-11 07:10:12
【问题描述】:

我希望能够检查当前运行该作业的构建用户是否是管理员。我使用了一些 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 服务器中的管理员 :)

【问题讨论】:

  • 您的问题是,如果您的构建是由(例如)scm 更改触发的,该怎么办?我认为管理员更适合配置工作。如果我错了,请纠正我
  • 我必须能够处理这些issue1issue2,所以我需要允许管理员通过运行作业来更改任何标签,而其他用户只能通过运行这项工作,希望我很清楚!

标签: groovy jenkins automation jenkins-plugins


【解决方案1】:
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)

【讨论】:

  • 你应该使用u.id而不是u.toString()
猜你喜欢
  • 2016-09-21
  • 1970-01-01
  • 2018-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多