如何从Jenkins管道内部获取用户角色?

问题描述

我正在使用Jenkins Enterprise。

登录后,我可以去这里:https://myserver/cjoc/roles/whoAmI

我看到以下信息:

User: [email protected]
Groups: "Administrators" administer
External groups: "authenticated","groupone","grouptwo"

如何从正在运行的管道中看到这一点?

我可以像这样获得Jenkins用户,但是如何获得用户的外部组?

def currentBuild = currentBuild.rawBuild
def cause = currentBuild.getCause(hudson.model.Cause.UserIdCause.class)
def theJenkinsUser = cause?.getUserName()

解决方法

    def user_id = cause.getUserId()

    def user_groups = User.getById(user_id,false).getAuthorities()
    if ('groupone' in user_groups || 'grouptwo' in user_groups) {
        println "This user is allowed"
    } else {
        currentBuild.result = "ABORTED"
        error("User not allowed")
    }