Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Marco Marinello
django-password-reset
Commits
37f7aaa3
Commit
37f7aaa3
authored
Nov 22, 2014
by
Eduardo Matos
Browse files
creating configuration setting to mantain backwards compatibility
parent
183ca8fb
Changes
2
Hide whitespace changes
Inline
Side-by-side
password_reset/forms.py
View file @
37f7aaa3
...
...
@@ -45,7 +45,12 @@ class PasswordRecoveryForm(forms.Form):
cleaner
=
getattr
(
self
,
'get_user_by_%s'
%
self
.
label_key
)
self
.
cleaned_data
[
'user'
]
=
user
=
cleaner
(
username
)
if
hasattr
(
user
,
'is_active'
)
and
not
user
.
is_active
:
from
django.conf
import
settings
recovery_only_active_users
=
getattr
(
settings
,
\
'RECOVER_ONLY_ACTIVE_USERS'
,
False
)
if
recovery_only_active_users
and
\
hasattr
(
user
,
'is_active'
)
and
not
user
.
is_active
:
raise
forms
.
ValidationError
(
_
(
"Sorry, this user is inactive and "
"his password can't be recovered."
))
...
...
password_reset/tests/tests.py
View file @
37f7aaa3
...
...
@@ -6,6 +6,7 @@ from django.test import TestCase
from
django.test.utils
import
override_settings
from
django.utils
import
timezone
from
django.utils.unittest
import
SkipTest
from
django.conf
import
settings
from
..forms
import
PasswordRecoveryForm
,
PasswordResetForm
from
..utils
import
get_user_model
...
...
@@ -93,7 +94,7 @@ class FormTests(TestCase):
},
case_sensitive
=
False
)
self
.
assertTrue
(
form
.
is_valid
())
def
test_error_if_user_is_inactive
(
self
):
def
test_
raise_
error_if_user_is_inactive
_and_settings_doesnt_allow_inactive_password_recovery
(
self
):
user
=
create_user
()
if
hasattr
(
user
,
'is_active'
):
...
...
@@ -101,12 +102,20 @@ class FormTests(TestCase):
user
.
save
()
form
=
PasswordRecoveryForm
(
data
=
{
'username_or_email'
:
user
.
email
})
self
.
assertTrue
(
form
.
is_valid
(),
'Password from inactive should be recovered'
)
settings
.
RECOVER_ONLY_ACTIVE_USERS
=
True
form
=
PasswordRecoveryForm
(
data
=
{
'username_or_email'
:
user
.
email
})
self
.
assertFalse
(
form
.
is_valid
(),
'Password from inactive user should not be recovered'
)
self
.
assertItemsEqual
(
form
.
errors
[
'username_or_email'
],
[
u
"Sorry, this user is inactive and his password can't be recovered."
])
# tear down settings
del
settings
.
RECOVER_ONLY_ACTIVE_USERS
def
test_form_custom_search
(
self
):
# Searching only for email does some extra validation
form
=
PasswordRecoveryForm
(
data
=
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a 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