Make sure you have a strategy to uniquely define sourceId for parents/guardians in Brightspace, as user-relationship is a mapping of unique sourceId between parents/guardians and children. When you send replacePerson requests to create users, ensure that you send parent/guardian sourceId information in the agent section of the request for children/learners. This creates the relationship between parent/guardian and child.
Five new plug-ins have been added to the IPSIS LIS 2.0 Adapter, which help create, update, and delete Parent/Guardian-Child relationship. Plug-ins are automatically set up:
- IReplaceUserHandler Interface ParentPortalUpdateRelationshipHandler
- IDeleteUserHandler Interface ParentPortalDeleteRelationshipHandler
- IDeleteUserHandler Interface DeleteUserRemoveRelationshipsHandler
- ITranslatePerson Interface PersonRequestAgentsTranslator
- ITranslateReadPersonResponse Interface ReadUserAgentsTranslator
ParentPortalCreateRelationshipHandler
ParentPortalUpdateRelationshipHandler implicitly creates and updates relationships between parents/guardians and learners (children).
Implementation:
D2L.Integration.ParentPortal.IPSIS.RequestAdapters.ParentPortalUpdateRelationshipHandler,D2L.Integration.ParentPortal.IPSIS
Expected behavior:
The handler performs the following tasks:
• Implicitly creates and updates parent/guardian-child relationships as defined by the agent field for a learner on a replace user request.
• Synchronizes relationships for user if SynchronizeRelationships extension field is provided. Learner is kept in the system but all relationships are removed.
Error behavior:
If there is a problem during processing, an exception is thrown, along with as much detailed information as possible.
Configuration note:
• This should be placed after all the Replace handlers.
DeleteUserRemoveRelationshipsHandler
DeleteUserRemoveRelationshipsHandler is used to remove the agent relationship when the user is deleted.
Implementation
D2L.IM.IPSIS.Default.Users.Handlers.DeleteUserRemoveRelationshipsHandler,D2L.IM.IPSIS.Default
Expected Behavior:
When a parent/guardian or child is deleted, the relationship is deleted.
Configuration note:
This should be placed after ParentPortalDeleteRelationshipHandler
ParentPortalDeleteRelationshipHandler
ParentPortalDeleteRelationshipHandler implicitly deletes relationships between parents/guardians and learners (children) (ie. when a relationship is missing, Brightspace will delete the relationship).
Implementation
D2L.Integration.ParentPortal.IPSIS.RequestAdapters.ParentPortalDeleteRelationshipHandler,D2L.Integration.ParentPortal.IPSIS
Expected behavior:
The handler performs the following tasks:
• Deletes parent/guardian-child relationships
Error behavior:
If there is a problem during processing, an exception is thrown, along with as much detailed information as possible.
Configuration note:
• This should be placed before all the Delete handlers.
PersonRequestAgentsTranslator
PersonRequestAgentsTranslator is required to map the agent identifier.
Implementation
D2L.IM.IPSIS.LIS.RequestAdapters.PMS.Default.PersonRequestAgentsTranslator,D2L.IM.IPSIS.LIS
Expected Behavior:
Maps agents from the request and creates parent/guardian relationships.
Configuration note:
This should be placed at the end of the translators.
ReadUserAgentsTranslator
ReadUserAgentsTranslator is used to retrieve parents and guardians associated with the user.
Implementation:
D2L.IM.IPSIS.LIS.ResultAdapters.PMS.Default.ReadUserAgentsTranslator,D2L.IM.IPSIS.LIS
Configuration note:
This should be placed at the end of the translators.
About replacePerson request
Excerpt from replacePerson request highlighting the agent section.
<ims:agent>
<ims:agentType>
<ims:instanceIdentifier>
<ims:language>en-US</ims:language>
</ims:instanceIdentifier>
<ims:instanceVocabulary>http://www.imsglobal.org/lis/pmsv2p0/agenttypevocabularyv1p0</ims:instanceVocabulary>
<ims:instanceValue>
<ims:textString>Parent</ims:textString>
</ims:instanceValue>
</ims:agentType>
<ims:agentId>
<ims:language>en-US</ims:language>
<ims:textString>parentsourceid</ims:textString>
</ims:agentId>
</ims:agent>
Supported agent type: Parent or Guardian