How to mark an organisation as the home organisation (release #40)

Brief description:

You can mark and unmark an existing organisation to become the home organisation for a user from release #40 onwards.

Preconditions:

You will need to know the syncID(s) of the hierarchy to become the home organization and this hierarchy must have organization type site or school. 

Events to set the home organisation:

IMS ES Request

Comments

createMembership
createMemberships
updateMembership
updateMemberships

If you:

  • Mark the membership as home organisation it will set this membership to home organization
  • Unmark the membership as home organization it will set the site as home organization if this membership previously was the home organization.
  • Omit the home organization extension no change will happen.

deleteMembership
deleteMemberships

The site will be set as new home organization if the deleted membership was the old home organization.

replaceMembership
replaceMemberships

If you:

  • Mark the membership as home organisation it will set this membership to home organization
  • Unmark the membership as home organization or if you omit the home organization extension it will set the site as home organization if this membership previously was the home organization.

Events to get the home organisation:

readMembership
readMemberships
readMembershipsForGroup
readMembershipsForPerson

It will only return the home organization extension if the membership is actually the home organization.

Input parameters:

<extensionField><fieldName> - set to ‘HomeOrganisation’ to (un)mark

<extensionField><fieldType> - this field is ignored, but set to ‘bool’ for correctness

<extensionField><fieldValue> - set to ‘0’ to unmark or set to ‘1’ to mark.

NB!  If role of the member = '06' /'Mentor', the extension field will be ignored.

Example in itslearning:

Example 1:

I want to mark the school with syncID = School2’ as the home organization of user with syncID = ‘User1’.

Result:  School2 will be the home organization for User1.    


Example 2:

I want to know which organization is the home organization for the user with syncID = ‘User1’. To do this I read all memberships for this person and look for the membership which is marked as the home organisation.

Result: School2 is the home organization for User1.    

Example 1

Request to set the home organisation:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ims="http://www.imsglobal.org/services/mms/xsd/imsMemberManMessSchema_v1p0" xmlns:ims1="http://www.imsglobal.org/services/common/imsCommonSchema_v1p0" xmlns:ims2="http://www.imsglobal.org/services/mms/xsd/imsMemberManDataSchema_v1p0" xmlns:ims3="http://www.imsglobal.org/services/common/imsMessBindSchema_v1p0">
<soapenv:Header>
<ims3:syncRequestHeaderInfo>
<ims3:messageIdentifier>123456789</ims3:messageIdentifier>
</ims3:syncRequestHeaderInfo>
</soapenv:Header>
<soapenv:Body>
<ims:updateMembershipRequest>
<ims:sourcedId>
<ims1:identifier>TestMembership</ims1:identifier>
</ims:sourcedId>
<ims:membership>
<ims2:groupSourcedId>
<ims1:identifier>School2</ims1:identifier>
</ims2:groupSourcedId>
<ims2:member>
<ims2:memberSourcedId>
<ims1:identifier>User1</ims1:identifier>
</ims2:memberSourcedId>
<ims2:role>
<ims2:roleType>01</ims2:roleType>
<ims2:extension>
<ims1:extensionField>
<ims1:fieldName>HomeOrganisation</ims1:fieldName>
<ims1:fieldType>bool</ims1:fieldType>
<ims1:fieldValue>1</ims1:fieldValue>
</ims1:extensionField>
</ims2:extension>
</ims2:role>
</ims2:member>
</ims:membership>
</ims:updateMembershipRequest>
</soapenv:Body>
</soapenv:Envelope>

Example 1

Response:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<s:Header>
<h:syncResponseHeaderInfo xmlns:h="http://www.imsglobal.org/services/common/imsMessBindSchema_v1p0" xmlns="http://www.imsglobal.org/services/common/imsMessBindSchema_v1p0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<messageIdentifier>123456789</messageIdentifier>
<statusInfo>
<codeMajor>success</codeMajor>
<severity>status</severity>
<messageIdRef>123456789</messageIdRef>
</statusInfo>
</h:syncResponseHeaderInfo>
<o:Security s:mustUnderstand="1" xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<u:Timestamp u:Id="_0">
<u:Created>2012-11-22T11:20:41.036Z</u:Created>
<u:Expires>2012-11-22T11:25:41.036Z</u:Expires>
</u:Timestamp>
</o:Security>
</s:Header>
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<updateMembershipResponse xmlns="http://www.imsglobal.org/services/mms/xsd/imsMemberManMessSchema_v1p0"/>
</s:Body>
</s:Envelope>

Example 1

Comments to request / response to set the home organisation:

Note that the extension node is part of the role. The value of the role you set does not influence wether or not the hierarchy is set as home organisation.

Example 2:

Request to get organisation type:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ims="http://www.imsglobal.org/services/mms/xsd/imsMemberManMessSchema_v1p0" xmlns:ims1="http://www.imsglobal.org/services/common/imsCommonSchema_v1p0" xmlns:ims3="http://www.imsglobal.org/services/common/imsMessBindSchema_v1p0">
<soapenv:Header>
<ims3:syncRequestHeaderInfo>
<ims3:messageIdentifier>123456789</ims3:messageIdentifier>
</ims3:syncRequestHeaderInfo>
</soapenv:Header>
<soapenv:Body>
<ims:readMembershipsForPersonRequest>
<ims:personSourcedId>
<ims1:identifier>User1</ims1:identifier>
</ims:personSourcedId>
</ims:readMembershipsForPersonRequest>
</soapenv:Body>
</soapenv:Envelope>

Example 2

Response:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<s:Header>
<h:syncResponseHeaderInfo xmlns:h="http://www.imsglobal.org/services/common/imsMessBindSchema_v1p0" xmlns="http://www.imsglobal.org/services/common/imsMessBindSchema_v1p0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<messageIdentifier>123456789</messageIdentifier>
<statusInfoSet>
<statusInfo>
<codeMajor>success</codeMajor>
<severity>status</severity>
<messageIdRef>123456789</messageIdRef>
</statusInfo>
</statusInfoSet>
</h:syncResponseHeaderInfo>
<o:Security s:mustUnderstand="1" xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<u:Timestamp u:Id="_0">
<u:Created>2012-11-22T11:22:47.335Z</u:Created>
<u:Expires>2012-11-22T11:27:47.335Z</u:Expires>
</u:Timestamp>
</o:Security>
</s:Header>
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<readMembershipsForPersonResponse xmlns="http://www.imsglobal.org/services/mms/xsd/imsMemberManMessSchema_v1p0">
<membershipIDPairSet>
<membershipIdPair>
<sourcedId>
<identifier xmlns="http://www.imsglobal.org/services/common/imsCommonSchema_v1p0">RootMembership</identifier>
</sourcedId>
<membership>
<groupSourcedId xmlns="http://www.imsglobal.org/services/mms/xsd/imsMemberManDataSchema_v1p0">
<identifier xmlns="http://www.imsglobal.org/services/common/imsCommonSchema_v1p0">Root</identifier>
</groupSourcedId>
<member xmlns="http://www.imsglobal.org/services/mms/xsd/imsMemberManDataSchema_v1p0">
<memberSourcedId>
<identifier xmlns="http://www.imsglobal.org/services/common/imsCommonSchema_v1p0">User1</identifier>
</memberSourcedId>
<role>
<roleType>Administrator</roleType>
</role>
</member>
</membership>
</membershipIdPair>
<membershipIdPair>
<sourcedId>
<identifier xmlns="http://www.imsglobal.org/services/common/imsCommonSchema_v1p0">TestMembership</identifier>
</sourcedId>
<membership>
<groupSourcedId xmlns="http://www.imsglobal.org/services/mms/xsd/imsMemberManDataSchema_v1p0">
<identifier xmlns="http://www.imsglobal.org/services/common/imsCommonSchema_v1p0">School2</identifier>
</groupSourcedId>
<member xmlns="http://www.imsglobal.org/services/mms/xsd/imsMemberManDataSchema_v1p0">
<memberSourcedId>
<identifier xmlns="http://www.imsglobal.org/services/common/imsCommonSchema_v1p0">User1</identifier>
</memberSourcedId>
<role>
<roleType>Administrator</roleType>
<extension>
<extensionField xmlns="http://www.imsglobal.org/services/common/imsCommonSchema_v1p0">
<fieldName>HomeOrganisation</fieldName>
<fieldType>bool</fieldType>
<fieldValue>1</fieldValue>
</extensionField>
</extension>
</role>
</member>
</membership>
</membershipIdPair>
</membershipIDPairSet>
</readMembershipsForPersonResponse>
</s:Body>
</s:Envelope>