feat: implement password_reset_required flag and enforcement logic #16252
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.
SUMMARY
This PR implements a "Force Password Reset" feature. It adds a
password_reset_requiredboolean field to the User model, allowing administrators to flag accounts that must change their password before they can access the rest of the API.Design Decisions:
auth.Usermodel viaadd_to_classinawx/main/models/__init__.pyto ensure it is a native attribute of the user.getmethod inUserDetailview. If the flag isTrue, the API returns a403 Forbiddenwith a JSON body indicating a reset is required. This signal allows the frontend to redirect the user to the password change page.ISSUE TYPE
COMPONENT NAME
ADDITIONAL INFORMATION
This change provides a way for security administrators to ensure credentials are rotated when suspected compromise occurs or as part of a standard security policy.
Verification performed:
0205_add_password_reset_flag.py) to handle the database schema update.UserSerializerto ensure the field is accessible and writable by administrators.