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.soap50.webservices import * from com.collabnet.ce.soap50.webservices.ClientSoapStubFactory import getSoapStub from com.collabnet.ce.soap50.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)