From 49dbde6ab176a68d2dd494f5b91d440c8e511f52 Mon Sep 17 00:00:00 2001 From: Sergio Oliveira Date: Tue, 19 Nov 2013 12:37:33 -0200 Subject: [PATCH] Fixing email edition for admins --- src/accounts/templates/accounts/user_update_form.html | 17 +++++++++++++---- src/super_archives/views.py | 23 +++++++++++++---------- 2 files changed, 26 insertions(+), 14 deletions(-) diff --git a/src/accounts/templates/accounts/user_update_form.html b/src/accounts/templates/accounts/user_update_form.html index 6b9ff7f..80b1fcf 100644 --- a/src/accounts/templates/accounts/user_update_form.html +++ b/src/accounts/templates/accounts/user_update_form.html @@ -13,7 +13,7 @@ $(function() { $.ajax({ url: "{% url 'archive_email_view' %}", type: 'post', - data: { email: $('#new_email').val() }, + data: { email: $('#new_email').val(), user: '{{ user_.pk }}' }, beforeSend: function(xhr, settings) { xhr.setRequestHeader("X-CSRFToken", $.cookie('csrftoken')); } @@ -36,7 +36,10 @@ $(function() { $.ajax({ url: "{% url 'archive_email_view' %}", type: 'delete', - data: { email: $('.email-address', $email_block).text() }, + data: { + email: $('.email-address', $email_block).text(), + user: '{{ user_.pk }}' + }, context: $email_block[0], beforeSend: function(xhr, settings) { xhr.setRequestHeader("X-CSRFToken", $.cookie('csrftoken')); @@ -53,7 +56,10 @@ $(function() { $.ajax({ url: "{% url 'archive_email_validation_view' %}", type: 'post', - data: { email: $('.email-address', $email_block).text() }, + data: { + email: $('.email-address', $email_block).text(), + user: '{{ user_.pk }}' + }, context: $email_block[0], beforeSend: function(xhr, settings) { xhr.setRequestHeader("X-CSRFToken", $.cookie('csrftoken')); @@ -77,7 +83,10 @@ $(function() { $.ajax({ url: "{% url 'archive_email_view' %}", type: 'update', - data: { email: $('.email-address', $email_block).text() }, + data: { + email: $('.email-address', $email_block).text(), + user: '{{ user_.pk }}' + }, beforeSend: function(xhr, settings) { xhr.setRequestHeader("X-CSRFToken", $.cookie('csrftoken')); } diff --git a/src/super_archives/views.py b/src/super_archives/views.py index 941b6e0..8aed9d7 100644 --- a/src/super_archives/views.py +++ b/src/super_archives/views.py @@ -138,8 +138,7 @@ class EmailView(View): """Validate an email with the given key""" try: - email_val = EmailAddressValidation.objects.get(validation_key=key, - user__pk=request.user.pk) + email_val = EmailAddressValidation.objects.get(validation_key=key) except EmailAddressValidation.DoesNotExist: messages.error(request, _('The email address you are trying to ' 'verify either has already been verified ' @@ -171,12 +170,13 @@ class EmailView(View): """Create new email address that will wait for validation""" email = request.POST.get('email') + user_pk = request.POST.get('user') if not email: return http.HttpResponseBadRequest() try: EmailAddressValidation.objects.create(address=email, - user=request.user) + user_pk=user_pk) except IntegrityError: # 409 Conflict # duplicated entries @@ -191,13 +191,14 @@ class EmailView(View): request.DELETE = http.QueryDict(request.body) email_addr = request.DELETE.get('email') + user_pk = request.DELETE.get('user') if not email_addr: return http.HttpResponseBadRequest() try: email = EmailAddressValidation.objects.get(address=email_addr, - user=request.user) + user_pk=user_pk) except EmailAddressValidation.DoesNotExist: pass else: @@ -206,7 +207,7 @@ class EmailView(View): try: email = EmailAddress.objects.get(address=email_addr, - user=request.user) + user_pk=user_pk) except EmailAddress.DoesNotExist: raise http.Http404 @@ -221,17 +222,18 @@ class EmailView(View): request.UPDATE = http.QueryDict(request.body) email_addr = request.UPDATE.get('email') + user_pk = request.UPDATE.get('user') if not email_addr: return http.HttpResponseBadRequest() try: email = EmailAddress.objects.get(address=email_addr, - user=request.user) + user_pk=user_pk) except EmailAddress.DoesNotExist: raise http.Http404 - request.user.email = email_addr - request.user.save() + email.user.email = email_addr + email.user.save() return http.HttpResponse(status=204) @@ -241,14 +243,15 @@ class EmailValidationView(View): def post(self, request): email_addr = request.POST.get('email') + user_pk = request.POST.get('user') try: email = EmailAddressValidation.objects.get(address=email_addr, - user=request.user) + user_pk=user_pk) except http.DoesNotExist: raise http.Http404 try: - send_verification_email(email_addr, request.user, + send_verification_email(email_addr, email.user, email.validation_key) except smtplib.SMTPException: logging.exception('Error sending validation email') -- libgit2 0.21.2