How do I enable/disable path-based permissions via SOAP?

The Path Based Permissions (PBP) are handled via the *roleList, *Cluster methods of rbacAppSoap. To enable PBP, use the "scm_fgp" (fine grained permissions) argument to addCluster.

See the below psudeocode.

from com.collabnet.ce.soap60.webservices import *
            from com.collabnet.ce.soap60.webservices.ClientSoapStubFactory import getSoapStub
            from com.collabnet.ce.soap60.types import *
            
            hostname = "http://server/"
            username = "admin"
            password = "admin"
            project = "proj1007"
            roleName = "tracker"
            
            sfSoap = getSoapStub(cemain.ICollabNetSoap, hostname)
            sfSession = sfSoap.login(username,password)
            rbacAppSoap = getSoapStub(rbac.IRbacAppSoap, hostname)
            
            roles = rbacAppSoap.getRoleList(sfSession,project).getDataRows().tolist()
            roleId = None
            
            for row in roles:
            if row.getDescription() == roleName :
            roleId = row.getId()
            print "found tracker role, %s" % roleId
            
            if roleId == None:
            raise Exception("Cant find role ")
            
            clusters = rbacAppSoap.listClusters(sfSession, roleId).getDataRows().tolist()
            for row in clusters:
            print row.getFolderId(), row.getOperationClusterName()
            if row.getOperationClusterName() == "scm_commit":
            print "found target!"
            rbacAppSoap.removeCluster(sfSession, roleId, row.getOperationClusterName(), row.getFolderId())
            rbacAppSoap.addCluster(sfSession, roleId, "scm_fgp", row.getFolderId())
            
            sfSoap.logoff(username,sfSession)