我已经为 Jenkins 中的自助服务部署设置了参数化作业。 用户可以选择应用程序的版本和要部署到的环境。 当前向用户显示的可用环境只是一个静态字符串列表(选择参数)。
现在我想根据当前用户的 LDAP 组将部署限制到某些环境。
jenkins 中的用户页面显示如下:
Jenkins Benutzer ID:maku
群组:
adm_proj_a
nexus_admin
ROLE_ADM_PROJ_XY
ROLE_BH_KK
如何在 groovy 脚本中获取这些组?
我尝试使用动态选择参数(脚本程序)并使用 groovy 脚本获取 LDAP 组,但没有找到通过 Jenkins-API 的方法。
欢迎任何提示
最佳答案
User.getAuthorities() 要求调用者具有 ADMINISTER 权限。 (http://javadoc.jenkins-ci.org/hudson/model/User.html#getAuthorities())
另一种方法是直接查询 SecurityRealm。
import hudson.model.*
import jenkins.model.*
def userid = User.current().id
def auths = Jenkins.instance.securityRealm.loadUserByUsername(userid)
.authorities.collect{a -> a.authority}
if("adm_proj_a" in auths){
...
关于groovy - Jenkins:如何在 groovy 脚本中获取用户 LDAP 组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24279864/