Handle situations where request has no User object, closes #1746 #1765
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.
Proposed changes in this pull request
Going off of the description in this StackOverflow article, #1746 appears to be related to situations where we have a redirect from
APPEND_SLASH=True
. Typically, a request works its way through the middleware stack, is sent to a view, and then a response works its way through the middleware (in opposite order). If a redirect occurs from theCommonMiddleware
middleware but beforeAuthenticationMiddleware
, theAuthenticationMiddleware
is skipped (meaning theuser
object is not added to therequest
) and the response is sent through all middleware. OurUserLanguageMiddleware
expects that therequest
have auser
property, but in the event of skipping theAuthenticationMiddleware
this is not true.We could do a re-org of the middleware, but it seems more robust to just handle situations where there is no
user
property on therequest
.When should this PR be merged
ASAP, as this is a blocking bug.
Risks
None foreseen. I would have liked to write a test that worked through all the existing middleware, but felt that this was simpler and better for the sake of time.
Checklist (for reviewing)
General
migration
label if a new migration is added.Functionality
Code
Tests
Security
Documentation