【问题标题】:How to get list of admin user list in Jenkins via any script?如何通过任何脚本获取 Jenkins 中的管理员用户列表?
【发布时间】:2018-07-10 21:58:05
【问题描述】:

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

谁能帮我提供任何可用的脚本。

【问题讨论】:

    标签: jenkins automation jenkins-cli jenkins-api


    【解决方案1】:

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

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

    【讨论】:

    • Sagar,感谢您的回复,但它永远不会显示谁都拥有管理员级别的访问权限。
    • 从未显示谁都拥有管理员级别的访问权限。
    • 列表中的名字都是管理员
    【解决方案2】:

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

    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])
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-16
      • 1970-01-01
      • 1970-01-01
      • 2015-05-11
      • 1970-01-01
      • 2013-05-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多