X-Git-Url: https://git.openstreetmap.org./osqa.git/blobdiff_plain/522d4762eb1aaba30d4de9275dbea9b83e3e7227..9ec76fc63597e2d033bf1f1da3d27b91b41f71e0:/forum/views/auth.py diff --git a/forum/views/auth.py b/forum/views/auth.py index 75095a6..6134d12 100644 --- a/forum/views/auth.py +++ b/forum/views/auth.py @@ -7,7 +7,8 @@ from forum.http_responses import HttpResponseUnauthorized from django.utils.safestring import mark_safe from django.utils.translation import ugettext as _ from django.utils.http import urlquote_plus -from django.contrib.auth.decorators import login_required +from forum.views.decorators import login_required +from forum.modules import decorate from django.contrib.auth import login, logout from django.http import get_host from forum.actions import SuspendAction @@ -20,7 +21,7 @@ import logging from forum.forms import SimpleRegistrationForm, SimpleEmailSubscribeForm, \ TemporaryLoginRequestForm, ChangePasswordForm, SetPasswordForm -from forum.utils.mail import send_email, send_template_email +from forum.utils.mail import send_template_email from forum.authentication.base import InvalidAuthentication from forum.authentication import AUTH_PROVIDERS @@ -270,9 +271,7 @@ def send_validation_email(request): else: try: hash = ValidationHash.objects.get(user=request.user, type='email') - if hash.expiration < datetime.datetime.now(): - hash.delete() - return send_validation_email(request) + hash.delete() except: hash = ValidationHash.objects.create_new(request.user, 'email', [request.user.email]) @@ -288,11 +287,10 @@ def validate_email(request, user, code): if (ValidationHash.objects.validate(code, user, 'email', [user.email])): user.email_isvalid = True user.save() - return login_and_forward(request, user, None, _("Thank you, your email is now validated.")) + return login_and_forward(request, user, reverse('index'), _("Thank you, your email is now validated.")) else: - raise Http404() + return render_to_response('auth/mail_already_validated.html', { 'user' : user }, RequestContext(request)) -@login_required def auth_settings(request, id): user_ = get_object_or_404(User, id=id) @@ -346,6 +344,7 @@ def auth_settings(request, id): 'form': form, 'has_password': user_.has_usable_password(), 'auth_keys': auth_keys_list, + 'allow_local_auth': AUTH_PROVIDERS.get('local', None), }, context_instance=RequestContext(request)) def remove_external_provider(request, id): @@ -403,7 +402,7 @@ def forward_suspended_user(request, user, show_private_msg=True): request.user.message_set.create(message) return HttpResponseRedirect(reverse('index')) -@login_required +@decorate.withfn(login_required) def signout(request): logout(request) - return HttpResponseRedirect(reverse('index')) \ No newline at end of file + return HttpResponseRedirect(reverse('index'))