Does the Desire2Learn Valence API allow you to modify a person's Username via the PUT /.../users/(userId) call?
We have a use case where a user does a legal name change, and their Username (format = Firstname.Lastname) has to be updated in D2L.
I understand that the SIS-to-D2L integration uses Username as one of two integration keys (the other is OrgDefinedId), so modifying a person's Username that way would fail.
So then, what are the key(s) for the PUT /users/(userid) Valence call, and will D2L allow you to modify a Username this way?
When you create a User, the user's UniqueIdentifier
property gets set to the UserName
property you pass within the CreateUserData
structure. The UniqueIdentifier property
is not modifiable after that point through the API; however, the UserName
property is -- you can update the UserName
in the D2L LMS user record. As far as the LMS is concerned, the UserId
property is the only part of the user record that it depends upon being unique.
When you change the UserName
property, the service has an underlying task that notices the change and propagates the change to the UniqueIdentfier
property. Currently, because this propagation happens separately from the update, the update action taken through the API (which returns an updated user structure) may not show the UniqueIdentifier
in sync with the UserName
. A subsequent fetch of that user's data (by Id, otherwise) should have the two properties back in sync again.