'Jenkins Overall/Read Permission via groovy script
I am trying groovy pipeline to provide Overall/Read permission to newly created user in Jenkins. Plugin which we are using for providing overall permissions to the user/group is "Project-based Matrix Authorization Strategy".
I have written the following groovy script to provide Overall read permission to the user but it's overwriting the existing configurations (Remove all the user's configurations of 'Project-based Matrix Authorization Strategy')
Any Help is appreciated. Thanks!!
Snippet referred from https://github.com/samrocketman/jenkins-bootstrap-shared/blob/main/scripts/configure-matrix-authorization-strategy.groovy
import jenkins.security.*
import hudson.security.*
import hudson.security.ProjectMatrixAuthorizationStrategy
import jenkins.model.Jenkins
def authz_strategy_config = [
strategy: 'ProjectMatrixAuthorizationStrategy',
user_permissions: [
'test-user': ['View Create']
]
]
def authz_strategy = hudson.security.ProjectMatrixAuthorizationStrategy.newInstance()
Map<String, Permission> permissionIds = Permission.all.findAll { permission ->
List<String> nonConfigurablePerms = ['RunScripts', 'UploadPlugins', 'ConfigureUpdateCenter']
permission.enabled &&
!permission.id.startsWith('hudson.security.Permission') &&
!(true in nonConfigurablePerms.collect { permission.id.endsWith(it) })
}.collect { permission ->
[ (shortName(permission)): permission ]
}.sum()
authz_strategy_config['user_permissions'].each { u, permissions ->
permissions.each { p ->
authz_strategy.append(permissionIds[p], u)
println " For user ${u} grant permission ${p}."
}
}
// configure global authorization
Jenkins.instance.authorizationStrategy = authz_strategy
// save settings to persist across restarts
Jenkins.instance.save()
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
