This is in response to the request to show how to query via web service all the permissions implied by a role.
Note: this was done in 2.1.4 (candidate) Note also, all this can be done in the UI too...
Create a session, and two attribute definitions
gsh 0% grouperSession = GrouperSession.startRootSession(); gsh 1% attributeDef = new AttributeDefSave(grouperSession).assignName("test:app0:permissionDefs:permissionDef0").assignToEffMembership(true).assignToGroup(true).assignAttributeDefType(AttributeDefType.perm).assignCreateParentStemsIfNotExist(true).save(); gsh 2% attributeDef.getAttributeDefActionDelegate().configureActionList("read,write"); gsh 3% attributeDef2 = new AttributeDefSave(grouperSession).assignName("test:app1:permissionDefs:permissionDef1").assignToEffMembership(true).assignToGroup(true).assignAttributeDefType(AttributeDefType.perm).assignCreateParentStemsIfNotExist(true).save(); gsh 4% attributeDef2.getAttributeDefActionDelegate().configureActionList("read,write, admin");
Create a few roles, add some members
gsh 5% app0role0 = new GroupSave(grouperSession).assignName("test:app0:roles:role0").assignCreateParentStemsIfNotExist(true).assignTypeOfGroup(TypeOfGroup.role).save(); gsh 6% app0role1 = new GroupSave(grouperSession).assignName("test:app0:roles:role1").assignCreateParentStemsIfNotExist(true).assignTypeOfGroup(TypeOfGroup.role).save(); gsh 7% app1role0 = new GroupSave(grouperSession).assignName("test:app1:roles:role0").assignCreateParentStemsIfNotExist(true).assignTypeOfGroup(TypeOfGroup.role).save(); gsh 8% app1role1 = new GroupSave(grouperSession).assignName("test:app0:roles:role0").assignCreateParentStemsIfNotExist(true).assignTypeOfGroup(TypeOfGroup.role).save(); gsh 9% addMember("test:app0:roles:role0", "test.subject.0"); gsh 10% addMember("test:app0:roles:role0", "test.subject.1"); gsh 11% addMember("test:app0:roles:role1", "test.subject.1"); gsh 12% addMember("test:app0:roles:role1", "test.subject.2"); gsh 13% addMember("test:app1:roles:role0", "test.subject.2"); gsh 14% addMember("test:app1:roles:role0", "test.subject.3"); gsh 15% addMember("test:app1:roles:role1", "test.subject.3"); gsh 16% addMember("test:app1:roles:role1", "test.subject.4");
sfd