Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
thalia
concrexit
Commits
1f36f70d
Commit
1f36f70d
authored
Oct 28, 2017
by
Tom van Bussel
Browse files
Fix MemberMiddleware in the API
The MemberMiddleware was broken when DRF's TokenAuthentication was used.
parent
8a9d9adc
Changes
1
Hide whitespace changes
Inline
Side-by-side
website/members/middleware.py
View file @
1f36f70d
from
django.utils.functional
import
SimpleLazyObject
from
members.models
import
Member
def
get_member
(
request
):
try
:
return
Member
.
objects
.
get
(
pk
=
request
.
user
.
pk
)
except
Member
.
DoesNotExist
:
return
None
class
MemberMiddleware
:
def
__init__
(
self
,
get_response
):
self
.
get_response
=
get_response
def
__call__
(
self
,
request
):
try
:
request
.
member
=
Member
.
objects
.
get
(
pk
=
request
.
user
.
pk
)
except
Member
.
DoesNotExist
:
request
.
member
=
None
# This needs to be a lazy object as Django REST Frameworks calls the
# the middleware before setting
request.user
# This also avoids unnecessary queries when request.member is not used
request
.
member
=
SimpleLazyObject
(
lambda
:
get_member
(
request
))
return
self
.
get_response
(
request
)
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment