This changeset adds integration with Blender ID, storing avatar and full name in a separate table added by profiles app.
Changes to avatar, email, full name and roles are handled by a new webhook.
Blender ID roles are stored as user groups, and currently not in use yet (the assumption is that templates will be using them to display or not display content).
How does this fit into the rest of the project?
Blender Studio already has Blender ID login working via blender_id_auth_client, however basic profile information and changes to subscription status of users are not available to Blender Studio. The purpose of this change is to add this profile information, and handle changes to both profile and subscription status.
Which functionality should be covered by this code?
This code takes care of
- Storing additional profile data about a user of Blender Studio, namely avatar, full name and roles;
- Updating this data when notified by Blender ID via a webhook;
- Relevant tests.
Which parts of the code are going to be responsible for handling errors, and retrying in case of failure?
Blender ID already has a queue that stores failed webhooks requests, which seems to be a good enough tool for retrying in case of failure.
As for handling errors, Blender Studio will have a Sentry handler that will help with notifying about failures, so this change doesn't have code specific to retrying due to unexpected erros.
