Skip to content

Commit

Permalink
Merge 1338e86 into 7846e5f
Browse files Browse the repository at this point in the history
  • Loading branch information
dwasyl committed May 31, 2021
2 parents 7846e5f + 1338e86 commit 62fcf83
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 11 deletions.
5 changes: 3 additions & 2 deletions elevate/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,13 @@ class ElevateForm(forms.Form):
label=_('Password'), widget=forms.PasswordInput(attrs={'autofocus': True})
)

def __init__(self, user, *args, **kwargs):
def __init__(self, request, user, *args, **kwargs):
self.request = request
self.user = user
super().__init__(*args, **kwargs)

def clean_password(self):
username = self.user.get_username()
if auth.authenticate(username=username, password=self.data['password']):
if auth.authenticate(request=self.request, username=username, password=self.data['password']):
return self.data['password']
raise forms.ValidationError(_('Incorrect password'))
2 changes: 1 addition & 1 deletion elevate/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ def dispatch(self, request):
request.session[REDIRECT_TO_FIELD_NAME] = redirect_to

context = {
'form': self.form_class(request.user, request.POST or None),
'form': self.form_class(request, request.user, request.POST or None),
'request': request,
REDIRECT_FIELD_NAME: redirect_to,
}
Expand Down
16 changes: 8 additions & 8 deletions tests/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,43 +11,43 @@ def setUp(self):
self.login()

def test_integration_empty(self):
self.assertFalse(ElevateForm(self.user).is_valid())
self.assertFalse(ElevateForm(self.request, self.user).is_valid())

def test_integration_invalid_password(self):
self.assertFalse(
ElevateForm(self.user, {'password': 'lol'}).is_valid()
ElevateForm(self.request, self.user, {'password': 'lol'}).is_valid()
)

def test_integration_valid_password(self):
self.assertTrue(
ElevateForm(self.user, {'password': 'foo'}).is_valid()
ElevateForm(self.request, self.user, {'password': 'foo'}).is_valid()
)

def test_integration_secondary_auth_valid_password(self):
self.assertTrue(
ElevateForm(self.user, {'password': 'stub'}).is_valid()
ElevateForm(self.request, self.user, {'password': 'stub'}).is_valid()
)

def test_clean_password_invalid_password(self):
with self.assertRaises(ValidationError):
ElevateForm(self.user, {'password': 'lol'}).clean_password()
ElevateForm(self.request, self.user, {'password': 'lol'}).clean_password()

def test_clean_password_valid_password(self):
password = 'foo'
self.assertEqual(
ElevateForm(self.user, {'password': password}).clean_password(),
ElevateForm(self.request, self.user, {'password': password}).clean_password(),
password
)

def test_clean_password_secondary_auth_valid_password(self):
password = 'stub'
self.assertEqual(
ElevateForm(self.user, {'password': password}).clean_password(),
ElevateForm(self.request, self.user, {'password': password}).clean_password(),
password
)

def test_integration_custom_user(self):
self.login(EmailUser)
self.assertTrue(
ElevateForm(self.user, {'password': 'foo'}).is_valid()
ElevateForm(self.request, self.user, {'password': 'foo'}).is_valid()
)
1 change: 1 addition & 0 deletions tests/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ def test_returns_template_response(self):
form = response.context_data['form']
self.assertIsInstance(form, ElevateForm)
self.assertEqual(form.user, self.user)
self.assertEqual(form.request, self.request)

def test_returns_template_response_with_next(self):
self.login()
Expand Down

0 comments on commit 62fcf83

Please sign in to comment.