지금까지는 작업에서 사용자/권한을 제거하는 단일 메서드 호출이 없다고 판단되었습니다. 수백 개의 작업이 있고 오래된 사용자를 삭제하면 시간이 많이 걸리기 때문에 다음과 같은 방법으로 작성했습니다. 몇 가지 테스트 작업에서 다음을 성공적으로 사용했습니다. 나는 "값의 소스"로이 그루비 스크립트 빌드 섹션에서
import hudson.security.*
import jenkins.security.*
import jenkins.model.Jenkins
def sids = Jenkins.instance.authorizationStrategy.getAllSIDs()
return sids
로, 사용자를 선택하는 확장 선택 매개 변수 플러그인을 통합 한;
def removeAMP(Job jobName, user) {
println jobName.name.center(80,'-')
def authorizationMatrixProperty = jobName.getProperty(AuthorizationMatrixProperty.class)
Map<Permission,Set<String>> Permissions = authorizationMatrixProperty.getGrantedPermissions()
println "Permission Map Before: " + Permissions + cr
println "Permission Values: " + Permissions.values() + cr
for (Set<String> permissionUsers:Permissions.values()) {
permissionUsers.remove(user)
}
println "Permission Map After: " + Permissions + cr
jobName.save();
}
testJobList = [ "TESTJOBA", "TESTJOBB" ]
testJobList.each {
jobName = hudson.model.Hudson.instance.getItem(it);
removeAMP(jobName, user)
출력 :
------------------------------------TESTJOBA------------------------------------
Permission Map Before: [Permission[interface hudson.model.Item,Read]:[bob,fred], Permission[interface hudson.model.Item,ExtendedRead]:[bob,fred], Permission[interface hudson.model.Item,Discover]:[bob,fred], Permission[interface hudson.model.Item,Build]:[bob,fred], Permission[interface hudson.model.Item,Cancel]:[bob,fred], Permission[interface hudson.model.Item,Workspace]:[bob,fred]]
Permission Values: [[bob,fred], [bob,fred], [bob,fred], [bob,fred], [bob,fred], [bob,fred]]
Permission Map After: [Permission[interface hudson.model.Item,Read]:[bob], Permission[interface hudson.model.Item,ExtendedRead]:[bob], Permission[interface hudson.model.Item,Discover]:[bob], Permission[interface hudson.model.Item,Build]:[bob], Permission[interface hudson.model.Item,Cancel]:[bob], Permission[interface hudson.model.Item,Workspace]:[bob]]
안녕 피트, 업데이트 주셔서 감사합니다, 나는 젠킨스 관리 작업 수준에서 사용자 액세스를 취소 할 수 있지만에서 할 수 있어요 -> 구성 글로벌 보안 -> 인증 -> 사용자 – Vijay