Description
Get memberships will retrieve membership objects by group, by subject, or by id (or a combination).
Features
- Can base membership list based on memberfilter (e.g. All, Immediate, Effective)
- Lookup subjects by subject lookup (by id, source, identifier, etc)
- Lookup groups by group lookup (by name or uuid)
- Returns group / subject information, can be detailed or not
- Can actAs another user
- Can filter by a list name (currently only can return group members memberships, not privilege memberships)
- Can filter by "scope" which is a sql "like" string in the namespace for group name.
- Can filter for all memberships directly in a stem, or in any substem of a stem
- Can filter by subject source so only people memberships are returned, or groups, or etc.
- In v2.2+ you can pass in the serviceLookup (service name or id) and serviceRole (admin|user) to get the memberships of a service based on role. This will essentially send you the users of a service.
- In v2.1.5+ you can get privileges on groups, stems, attribute definitions. You can pass in fieldType to filter on the type of memberships: list|access|naming|attributeDef
- ownerStemNames, ownerStemUuids, ownerNamesOfAttributeDefs, ownerIdsOfAttributeDefs
- In v2.5+, you can get point in time information as well
Get memberships Lite service
- Accepts one group, or one subject, or multiple membership ids to get members for (or combination)
- Documentation: SOAP (click on getMembershipsLite), REST (click on getMembershipsLite)
- For REST, the request can put data in query string (in URL or request body)
- REST request (colon is escaped to %3A):
- GET /grouper-ws/servicesRest/v1_6_000/groups/aStem%3AaGroup/memberships
- GET /grouper-ws/servicesRest/v1_6_000/subjects/12345/memberships
- GET /grouper-ws/servicesRest/v1_6_000/memberships
- Note: if passing data in request body e.g. actAs, use a POST
- (see documentation above for details): Request object, response object
- Response codes
- Samples (all files with "Lite" in them, click on "download" to see file)
Get memberships service
- Accepts multiple groups or subjects or memberhipIds (or combination) to retrieve lists of memberships
- Documentation: SOAP (click on getMemberships), REST (click on getMemberships)
- REST request (colon is escaped to %3A):
- POST /grouper-ws/servicesRest/v1_6_000/groups/aStem%3AaGroup/memberships
- POST /grouper-ws/servicesRest/v1_6_000/subjects/12345/memberships
- POST /grouper-ws/servicesRest/v1_6_000/memberships
- (see documentation above for details): Request object, response object
- Response codes overall
- Returns an overall status
- Samples (all files without "Lite" in them, click on "download" to see files)
Example of filtering by PIT and getting PIT data back
[mchyzer@flash pennGroupsClient-2.6.0]$ java -jar grouperClient-2.6.0.jar --operation=getMembershipsWs --groupNames=test:testGroup --pointInTimeFrom=2021/01/01_18:00:00.123 --pointInTimeTo=2021/01/09_11:07:20.234 --debug=true
Reading resource: grouper.client.properties, from: /home/mchyzer/grouper/pennGroupsClient-2.6.0/grouper.client.properties
WebService: connecting as user: 'someUser'
WebService: connecting to URL: 'https://grouperWs.server.institution.edu/grouperWs/servicesRest/2.6.0/memberships'
################ REQUEST START (indented) ###############
POST /grouperWs/servicesRest/2.6.0/memberships HTTP/1.1
Connection: close
Authorization: Basic xxxxxxxxxxxxxxxx
User-Agent: Jakarta Commons-HttpClient/3.1
Host: grouperWs.apps.upenn.edu:-1
Content-Length: 272
Content-Type: text/xml; charset=UTF-8
<WsRestGetMembershipsRequest>
<wsGroupLookups>
<WsGroupLookup>
<groupName>test:testGroup</groupName>
</WsGroupLookup>
</wsGroupLookups>
<pointInTimeFrom>2021/01/01 18:00:00.123</pointInTimeFrom>
<pointInTimeTo>2021/01/09 11:07:20.234</pointInTimeTo>
</WsRestGetMembershipsRequest>
################ REQUEST END ###############
################ RESPONSE START (indented) ###############
HTTP/1.1 200 OK
Date: Thu, 30 Sep 2021 03:10:40 GMT
Content-Type: application/xml;charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips
Strict-Transport-Security: max-age=15768000
X-Grouper-resultCode: SUCCESS
X-Grouper-success: T
X-Grouper-resultCode2: NONE
<WsGetMembershipsResults>
<wsMemberships>
<WsMembership>
<membershipId>d2ee3b81754545f5a1b3a24a185090e7</membershipId>
<enabled>F</enabled>
<enabledTime>2020/11/07 15:22:23.577</enabledTime>
<disabledTime>2021/05/08 12:58:50.049</disabledTime>
<memberId>c5c8ef55-76be-4b0d-9910-9efbf465cff3</memberId>
<groupId>dbfa18c3-a025-47b6-a9a0-be5ac02e8270</groupId>
<subjectId>10021368</subjectId>
<subjectSourceId>pennperson</subjectSourceId>
<groupName>test:testGroup</groupName>
</WsMembership>
<WsMembership>
<membershipId>cb8e112632e244aab04521eaf2b776e6</membershipId>
<enabled>F</enabled>
<enabledTime>2020/10/03 09:22:39.808</enabledTime>
<disabledTime>2021/02/02 21:19:58.002</disabledTime>
<memberId>3fd098df-f4b6-4f0b-ab8c-2b6c81cd1972</memberId>
<groupId>dbfa18c3-a025-47b6-a9a0-be5ac02e8270</groupId>
<subjectId>10031144</subjectId>
<subjectSourceId>pennperson</subjectSourceId>
<groupName>test:testGroup</groupName>
</WsMembership>
</wsMemberships>
<wsGroups>
<WsGroup>
<extension>testGroup</extension>
<name>test:testGroup</name>
<uuid>dbfa18c3-a025-47b6-a9a0-be5ac02e8270</uuid>
<enabled>T</enabled>
<enabledTime>2011/02/25 01:02:04.691</enabledTime>
</WsGroup>
</wsGroups>
<wsSubjects>
<WsSubject>
<resultCode>SUCCESS</resultCode>
<success>T</success>
<memberId>c5c8ef55-76be-4b0d-9910-9efbf465cff3</memberId>
<id>10021368</id>
<sourceId>pennperson</sourceId>
</WsSubject>
<WsSubject>
<resultCode>SUCCESS</resultCode>
<success>T</success>
<memberId>3fd098df-f4b6-4f0b-ab8c-2b6c81cd1972</memberId>
<id>10031144</id>
<sourceId>pennperson</sourceId>
</WsSubject>
</wsSubjects>
<resultMetadata>
<resultCode>SUCCESS</resultCode>
<resultMessage>Found 2 results involving 1 groups and 2 subjects</resultMessage>
<success>T</success>
</resultMetadata>
<responseMetadata>
<resultWarnings>, Client version: 2.6.0 is greater than (major/minor) server version: 2.5.55, Client version: 2.6.0 is greater than (major/minor) server version: 2.5.55</resultWarnings>
<millis>184</millis>
<serverVersion>2.5.55</serverVersion>
</responseMetadata>
</WsGetMembershipsResults>
################ RESPONSE END ###############
Output template: Index: ${index}: ${type}: ${ownerName}, subject: ${wsSubject.id}, list: ${wsMembership.listName}, type: ${wsMembership.membershipType}, enabled: ${wsMembership.enabled}, available variables: wsGetMembershipsResults, grouperClientUtils, index, wsMembership, type, ownerName
Index: 0: group: test:testGroup, subject: 10021368, list: , type: , enabled: F
Index: 1: group: test:testGroup, subject: 10031144, list: , type: , enabled: F
Elapsed time: 1144ms
[mchyzer@flash pennGroupsClient-2.6.0]$