Retroactively add users to teams during OIDC connect #1386
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The current code listens to events like enrolling / unenrolling / changing user enrolment information if the changes are made after the user connects to OIDC.
However, consider the following scenario (each item in the list happens before the next item):
A
,B
andC
D
Because the enrolment into course
D
happened after synchronizing the account the AD, the database contains an o365 local object for the user, so a\local_o365\obj\o365user
instance can be created. This means that the handlers for user enrolment likehandle_user_enrolment_created
can add the user to the team. In contrast, since the enrolments for coursesA
,B
andC
were created before the user was synchronized, an object did not exist, so the user was not added to the team.The changes check what courses the user was enrolled into before connecting to OIDC and adding them to the teams according to their enrolment status, so at least the changes are visible once the user connects their account.