场景:环境有一个构建参数,用户可以选择Dev,Prod,QA等。但是,我想限制用户对特定环境的访问。例如,用户A应该能够选择所有值(Dev,QA,Prod),而用户B应该只能选择(Dev)等等。
到目前为止我认为的解决方案: 在Extensible选项中,选择system groovy choice参数,编写一个groovy脚本,该脚本将使用户登录并检查用户的硬编码值,以决定应在列表中返回所有环境列表。 例如:如果登录用户是用户A,则返回Dev,QA,Prod列表。如果登录用户是user-B,则返回仅包含Dev的列表,依此类推。
需要帮助:我无法找到将返回尝试构建作业的用户的特定变量。请帮助我使用变量名称,就像我们可以使用“jenkins”变量来获取作业名称。 如果有任何其他想法来实现这一目标,请提出建议
谢谢, 萨拉
答案 0 :(得分:0)
您可以像这样获取当前用户的用户ID:
SecurityContextHolder.getContext().getAuthentication().getName()
我想这应该在设置构建参数的上下文中工作,但我不确定。
答案 1 :(得分:0)
回答我自己的问题,如果这可以帮助将来的任何人
jenkins.model.Jenkins.instance.getAuthentication()。getName()将为当前登录的用户提供。