Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-53581

Folders- provide info, groovy, how to get permissions

      Hi, just a question (I did not found another place where to ask)

      Is there any possibility how to obtain permissions for the folder job?

      I need something like permitted user (with permission level in ideal case) for the folder in jenkins

      I tried this:

      import com.cloudbees.hudson.plugins.folder.*
      import groovyjarjarasm.asm.Item
      import jenkins.model.Jenkins
      import 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 I cannot understand it fully, and this script returns 

       

      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'

       

      I am using following, but it should not matters

      Can you advise how to get it, or where to put my question? 
      Thanks in advance

       note

          [JENKINS-53581] Folders- provide info, groovy, how to get permissions

          Devin Nusbaum added a comment - - edited

          Hi, it is better to use the jenkinsci-users mailing list for a question like this instead of opening a bug on the bug tracker: https://jenkins.io/mailing-lists/.

          As the error message states, your error is from this line:

          AbstractProject proj = Hudson.instance.getItem(it.fullName)
          

          Folders are not a subtype of AbstractProject, so this fails. You should use AbstractFolder as the type on the left hand side, and if you are using it.fullName you should use Jenkins.instance.getItemByFullName.

          If that doesn't fix the issue for you, please send an email to the mailing list explaining what you are trying to accomplish (i.e. why are you trying to get folder permissions in the groovy console), and we can help you work through any other issues there.

          Devin Nusbaum added a comment - - edited Hi, it is better to use the jenkinsci-users mailing list for a question like this instead of opening a bug on the bug tracker: https://jenkins.io/mailing-lists/ . As the error message states, your error is from this line: AbstractProject proj = Hudson.instance.getItem(it.fullName) Folders are not a subtype of AbstractProject, so this fails. You should use AbstractFolder as the type on the left hand side, and if you are using it.fullName you should use Jenkins.instance.getItemByFullName . If that doesn't fix the issue for you, please send an email to the mailing list explaining what you are trying to accomplish (i.e. why are you trying to get folder permissions in the groovy console), and we can help you work through any other issues there.

            dnusbaum Devin Nusbaum
            pavenova Pavel Novak
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: