I found nice repository from cloudbees https://github.com/cloudbees/jenkins-scripts
and there is a script existing already https://github.com/cloudbees/jenkins-scripts/blob/master/auth-project-report.groovy So I have take inspiration and did my script regarding the followup from the links above - reading folders - reads permissions - if there is a user with "external" in the fullName, then store it, and if there are found at least 1 externals, it got printed out in pseudo-csv like *folderName;URL;userID;userFullName;mailAddres* See below *//taken @ https://github.com/cloudbees/jenkins-scripts/blob/master/auth-project-report.groovy//https://javadoc.jenkins.io/plugin/matrix-auth/com/cloudbees/hudson/plugins/folder/properties/AuthorizationMatrixProperty.html//https://javadoc.jenkins.io/plugin/cloudbees-folder/com/cloudbees/hudson/plugins/folder/AbstractFolder.html//https://javadoc.jenkins.io/hudson/security/Permission.htmldef folderdef URLList<String> adminUserList=new ArrayList<String>() //get itemsfor (item in Jenkins.instance.allItems) { //find folders if (item.class.canonicalName == "com.cloudbees.hudson.plugins.folder.Folder") { folder = item.fullName URL = item.getAbsoluteUrl() //iterate over properties and find permissions item.properties.each { p -> if(p.class.canonicalName == "com.cloudbees.hudson.plugins.folder.properties.AuthorizationMatrixProperty") { //permissions found, get them Map<hudson.security.Permission,Set<String>> gp = p.getGrantedPermissions() //interested only in admins of folder- permission to modify the given folder gp.get(hudson.security.Permission.fromId("hudson.model.Item.Configure")).each{ //getUserList User usr = User.getById(it,false) //println usr.fullName if(usr != null && usr.fullName.contains("external")) { def usrMail = usr.getProperty(hudson.tasks.Mailer.UserProperty.class).getAddress(); adminUserList.add(it + ";" + usr.fullName +";" + usrMail) } } } } } if(adminUserList.size() > 0) { adminUserList.each{user -> println folder + ";" + URL + ";"+ user } } adminUserList=new ArrayList<String>() } * Dne pondělí 17. září 2018 13:51:34 UTC+2 Pavel Novák napsal(a): > > Hi, > regarding https://issues.jenkins-ci.org/browse/JENKINS-53581 > <https://issues.jenkins-ci.org/browse/JENKINS-53581> > > I would like to get permissions setup for the folders in the Jenkins by > *groovy > script *used in the jenkins script console > > Environment: > Jenkins ver. 2.121.2 > + Folders plugin 6.5.1 > + Matrix Authorization Strategy 2.3 > > Jenkins ver. 2.107.3 > + Folders plugin 6.4 > + Matrix Authorization Strategy 2.2 > > I am using similar scripts for kind of reporting, e.g. number of folders, > folders with recent builds (in given period, etc.) > > I tried, with the clues over the internet, following > > import com.cloudbees.hudson.plugins.folder.*import > groovyjarjarasm.asm.Itemimport jenkins.model.Jenkinsimport > hudson.security.*import hudson.model.*//AbstractProject proj = > Hudson.instance.getItem("YourJob")//AuthorizationMatrixProperty authProperty > = proj.getProperty(AuthorizationMatrixProperty.class) > def items=Jenkins.instance.getAllItems();//load all items in jenkins > items.each{ > //get folders only if(it instanceof Folder){ > // println it //print for debug AbstractProject proj = > Hudson.instance.getItem(it.fullName) > AuthorizationMatrixProperty authProperty = > proj.getProperties(AuthorizationMatrixProperty.class) > } > } > > > But that fails because casting error > > org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast > object 'com.cloudbees.hudson.plugins.folder.Folder@4c019d3f[foldername]' with > class 'com.cloudbees.hudson.plugins.folder.Folder' to class > 'hudson.model.AbstractProject' > > > > > In the link above I got an advise as to use abstract folder, etc. now I am in > the state I am getting error about getting property > > groovy.lang.MissingMethodException: No signature of method: > com.cloudbees.hudson.plugins.folder.Folder.getProperties() is applicable for > argument types: (java.lang.Class) values: [class > hudson.security.AuthorizationMatrixProperty] > Possible solutions: getProperties(), getProperties() > > > Do you have any idea, how to obtain the permissions on the folder > - in fact, 1st level like "job root" should be enough, I dont need to go > deeper > - in ideal case I would like to get all the granted permissions > - at least, I need users, which are having any permissions on the folder > (Excl. jenkins admins, ofc.) > > note- I am jenkins admin, so I have the full permissions > > Thanks in advance for any advise. > > -- You received this message because you are subscribed to the Google Groups "Jenkins Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/61d96524-387c-46d5-ab37-6aa2ddba20e0%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.