X-Git-Url: https://git.openstreetmap.org./osqa.git/blobdiff_plain/7f4982393567a5f6827c12a089363d91338f9f13..e5cd988563f154900222d31e63cf51c9903506e9:/forum/views/auth.py diff --git a/forum/views/auth.py b/forum/views/auth.py index 38d86b2..c0fecc1 100644 --- a/forum/views/auth.py +++ b/forum/views/auth.py @@ -7,6 +7,7 @@ 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.utils.encoding import smart_unicode from forum.views.decorators import login_required from forum.modules import decorate from django.contrib.auth import login, logout @@ -19,18 +20,18 @@ import types import datetime import logging -from forum.forms import SimpleRegistrationForm, SimpleEmailSubscribeForm, \ - TemporaryLoginRequestForm, ChangePasswordForm, SetPasswordForm +from forum.forms import SimpleRegistrationForm, TemporaryLoginRequestForm, \ + ChangePasswordForm, SetPasswordForm from forum.utils.mail import send_template_email from forum.authentication.base import InvalidAuthentication from forum.authentication import AUTH_PROVIDERS from forum.models import AuthKeyUserAssociation, ValidationHash, Question, Answer -from forum.actions import UserJoinsAction, EmailValidationAction -from forum.models.action import ActionRepute +from forum.actions import UserJoinsAction from forum.settings import REP_GAIN_BY_EMAIL_VALIDATION +from vars import ON_SIGNIN_SESSION_ATTR, PENDING_SUBMISSION_SESSION_ATTR def signin_page(request): referer = request.META.get('HTTP_REFERER', '/') @@ -156,9 +157,8 @@ def process_provider_signin(request, provider): def external_register(request): if request.method == 'POST' and 'bnewaccount' in request.POST: form1 = SimpleRegistrationForm(request.POST) - email_feeds_form = SimpleEmailSubscribeForm(request.POST) - if (form1.is_valid() and email_feeds_form.is_valid()): + if form1.is_valid(): user_ = User(username=form1.cleaned_data['username'], email=form1.cleaned_data['email']) user_.email_isvalid = request.session.get('auth_validated_email', '') == form1.cleaned_data['email'] user_.set_unusable_password() @@ -184,10 +184,6 @@ def external_register(request): uassoc = AuthKeyUserAssociation(user=user_, key=assoc_key, provider=auth_provider) uassoc.save() - if email_feeds_form.cleaned_data['subscribe'] == 'n': - user_.subscription_settings.enable_notifications = False - user_.subscription_settings.save() - del request.session['assoc_key'] del request.session['auth_provider'] @@ -202,7 +198,12 @@ def external_register(request): return HttpResponseRedirect(reverse('auth_signin')) provider_class = AUTH_PROVIDERS[auth_provider].consumer - user_data = provider_class.get_user_data(request.session['assoc_key']) + + # Pass the cookies to the Facebook authentication class get_user_data method. We need them to take the access token. + if provider_class.__class__.__name__ == 'FacebookAuthConsumer': + user_data = provider_class.get_user_data(request.COOKIES) + else: + user_data = provider_class.get_user_data(request.session['assoc_key']) if not user_data: user_data = request.session.get('auth_consumer_data', {}) @@ -218,13 +219,11 @@ def external_register(request): 'username': username, 'email': email, }) - email_feeds_form = SimpleEmailSubscribeForm() provider_context = AUTH_PROVIDERS[request.session['auth_provider']].context return render_to_response('auth/complete.html', { 'form1': form1, - 'email_feeds_form': email_feeds_form, 'provider':provider_context and mark_safe(provider_context.human_name) or _('unknown'), 'login_type':provider_context.id, 'gravatar_faq_url':reverse('faq') + '#gravatar', @@ -302,14 +301,9 @@ def validate_email(request, user, code): user = get_object_or_404(User, id=user) if (ValidationHash.objects.validate(code, user, 'email', [user.email])): - EmailValidationAction(user=user, ip=request.META['REMOTE_ADDR']).save() - if REP_GAIN_BY_EMAIL_VALIDATION > 0: - message = _("Thank you, your email is now validated and you've got %d points." % int(REP_GAIN_BY_EMAIL_VALIDATION)) - - else: - message = _("Thank you, your email is now validated.") - - return login_and_forward(request, user, reverse('index'), message) + user.email_isvalid = True + user.save() + return login_and_forward(request, user, reverse('index'), _("Thank you, your email is now validated.")) else: return render_to_response('auth/mail_already_validated.html', { 'user' : user }, RequestContext(request)) @@ -386,7 +380,7 @@ def login_and_forward(request, user, forward=None, message=None): login(request, user) if message is None: - message = _("Welcome back %s, you are now logged in") % user.username + message = _("Welcome back %s, you are now logged in") % smart_unicode(user.username) request.user.message_set.create(message=message)