5
5
from django .conf import settings
6
6
from django .contrib .auth import get_user_model
7
7
from django .core .exceptions import ObjectDoesNotExist
8
+ from django .utils .decorators import method_decorator
8
9
from django .utils .translation import ugettext_lazy as _
10
+ from django .views .decorators .debug import sensitive_post_parameters
9
11
10
12
from rest_framework import status
11
13
from rest_framework .views import APIView
21
23
from .models import TokenModel
22
24
from .utils import jwt_encode
23
25
26
+ sensitive_post_parameters_m = method_decorator (
27
+ sensitive_post_parameters (
28
+ 'password' , 'old_password' , 'new_password1' , 'new_password2'
29
+ )
30
+ )
31
+
24
32
25
33
class LoginView (GenericAPIView ):
26
34
"""
@@ -36,6 +44,10 @@ class LoginView(GenericAPIView):
36
44
serializer_class = LoginSerializer
37
45
token_model = TokenModel
38
46
47
+ @sensitive_post_parameters_m
48
+ def dispatch (self , * args , ** kwargs ):
49
+ return super (LoginView , self ).dispatch (* args , ** kwargs )
50
+
39
51
def process_login (self ):
40
52
django_login (self .request , self .user )
41
53
@@ -176,6 +188,10 @@ class PasswordResetConfirmView(GenericAPIView):
176
188
serializer_class = PasswordResetConfirmSerializer
177
189
permission_classes = (AllowAny ,)
178
190
191
+ @sensitive_post_parameters_m
192
+ def dispatch (self , * args , ** kwargs ):
193
+ return super (PasswordResetConfirmView , self ).dispatch (* args , ** kwargs )
194
+
179
195
def post (self , request ):
180
196
serializer = self .get_serializer (data = request .data )
181
197
serializer .is_valid (raise_exception = True )
@@ -195,6 +211,10 @@ class PasswordChangeView(GenericAPIView):
195
211
serializer_class = PasswordChangeSerializer
196
212
permission_classes = (IsAuthenticated ,)
197
213
214
+ @sensitive_post_parameters_m
215
+ def dispatch (self , * args , ** kwargs ):
216
+ return super (PasswordChangeView , self ).dispatch (* args , ** kwargs )
217
+
198
218
def post (self , request ):
199
219
serializer = self .get_serializer (data = request .data )
200
220
serializer .is_valid (raise_exception = True )
0 commit comments