Alpha state. A platform designed for building enterprise-grade, multi-tenant products using Azure, .NET, React, TypeScript, Infrastructure as Code, etc.
Introduce functionality allowing users to change their avatars, with an option to upload a new avatar when saving their User Profile. Supported formats include JPEG, PNG, GIF, and WebP, providing users with flexibility in avatar choices.
Address several issues with Gravatar handling: users without Gravatars now correctly avoid default Gravatar images, and the system gracefully handles timeouts when fetching Gravatars, returning a Not Found status if an image is missing. Additionally, the user profile no longer displays a broken image for users without an avatar.
The recently introduced GravatarClient has been decoupled from the Users feature, enabling more modular use across the application.
To streamline avatar uploads, a strongly-typed api.uploadFile method has been implemented, enhancing type safety and usability.
Lastly, an issue in RepositoryBase.Update has been fixed to prevent unnecessary entity fetching during updates, improving efficiency.
Checklist
[x] I have added a Label to the pull-request
[x] I have added tests, and done manual regression tests
[x] I have updated the documentation, if necessary
Summary & Motivation
Introduce functionality allowing users to change their avatars, with an option to upload a new avatar when saving their User Profile. Supported formats include JPEG, PNG, GIF, and WebP, providing users with flexibility in avatar choices.
Address several issues with Gravatar handling: users without Gravatars now correctly avoid default Gravatar images, and the system gracefully handles timeouts when fetching Gravatars, returning a
Not Found
status if an image is missing. Additionally, the user profile no longer displays a broken image for users without an avatar.The recently introduced
GravatarClient
has been decoupled from the Users feature, enabling more modular use across the application.To streamline avatar uploads, a strongly-typed
api.uploadFile
method has been implemented, enhancing type safety and usability.Lastly, an issue in
RepositoryBase.Update
has been fixed to prevent unnecessary entity fetching during updates, improving efficiency.Checklist