Commit 4527db0f by David Ormsbee

Allow people who haven't activated to reset their password.

parent 66d9a9cf
...@@ -517,6 +517,17 @@ def password_reset(request): ...@@ -517,6 +517,17 @@ def password_reset(request):
''' Attempts to send a password reset e-mail. ''' ''' Attempts to send a password reset e-mail. '''
if request.method != "POST": if request.method != "POST":
raise Http404 raise Http404
# By default, Django doesn't allow Users with is_active = False to reset their passwords,
# but this bites people who signed up a long time ago, never activated, and forgot their
# password. So for their sake, we'll auto-activate a user for whome password_reset is called.
try:
user = User.objects.get(email=request.POST['email'])
user.is_active = True
user.save()
except:
log.exception("Tried to auto-activate user to enable password reset, but failed.")
form = PasswordResetForm(request.POST) form = PasswordResetForm(request.POST)
if form.is_valid(): if form.is_valid():
form.save(use_https = request.is_secure(), form.save(use_https = request.is_secure(),
...@@ -541,10 +552,6 @@ def reactivation_email(request): ...@@ -541,10 +552,6 @@ def reactivation_email(request):
return HttpResponse(json.dumps({'success': False, return HttpResponse(json.dumps({'success': False,
'error': 'No inactive user with this e-mail exists'})) 'error': 'No inactive user with this e-mail exists'}))
if user.is_active:
return HttpResponse(json.dumps({'success': False,
'error': 'User is already active'}))
reg = Registration.objects.get(user=user) reg = Registration.objects.get(user=user)
reg.register(user) reg.register(user)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment