upgrade flask_login to 0.5.0

flask_login sets a bunch of variables in the session object. We only use
one of them, `user_id`. We set that to the user id from the database,
and refer to it all over the place.

However, in flask_login 0.5.0 they prefix this with an underscore to
prevent people accidentally overwriting it etc. So when a user logs in
we need to make sure that we set user_id manually so we can still use
it.

flask_login sets a bunch of variables on the `flask.session` object.
However, this session object isn't the one that gets passed in to the
request context by flask - that one can only be modified outside of
requests from within the session_transaction context manager (see [1]).
So, flask_login populates the normal session and then we need to copy
all of those values across.

We didn't need to do this previously because we already set the
`user_id` value on line 20 of tests/__init__.py, but now that
flask_login is looking for `_user_id` instead we need to do this
properly.

[1] https://flask.palletsprojects.com/en/1.1.x/testing/#accessing-and-modifying-sessions
This commit is contained in:
Leo Hemsted
2020-03-06 15:41:13 +00:00
parent 206dc87426
commit 85f159a25f
5 changed files with 11 additions and 6 deletions

View File

@@ -7,7 +7,7 @@ ago==0.0.93
humanize==1.0.0
Flask==1.1.1
Flask-WTF==0.14.3
Flask-Login==0.4.1
Flask-Login==0.5.0
blinker==1.4
pyexcel==0.5.15
@@ -30,10 +30,10 @@ git+https://github.com/alphagov/notifications-utils.git@36.6.2#egg=notifications
git+https://github.com/alphagov/govuk-frontend-jinja.git@v0.5.1-alpha#egg=govuk-frontend-jinja==0.5.1-alpha
## The following requirements were added by pip freeze:
awscli==1.18.13
awscli==1.18.15
bleach==3.1.1
boto3==1.10.38
botocore==1.15.13
botocore==1.15.15
certifi==2019.11.28
chardet==3.0.4
Click==7.0