Revision 6e3bb9c8 snf-astakos-app/astakos/im/views/im.py
b/snf-astakos-app/astakos/im/views/im.py | ||
---|---|---|
310 | 310 |
instance=request.user, |
311 | 311 |
session_key=request.session.session_key |
312 | 312 |
) |
313 |
|
|
313 | 314 |
extra_context['next'] = request.GET.get('next') |
314 | 315 |
if request.method == 'POST': |
315 | 316 |
form = ProfileForm( |
... | ... | |
353 | 354 |
user_available_providers = request.user.get_available_auth_providers() |
354 | 355 |
|
355 | 356 |
extra_context['services'] = Component.catalog().values() |
357 |
|
|
358 |
if request.method == "GET": |
|
359 |
if request.user.email_change_is_pending(): |
|
360 |
change_email = request.user.get_pending_email_change() |
|
361 |
msg = _(astakos_messages.PENDING_EMAIL_CHANGE_WARNING) % { |
|
362 |
'email': change_email.new_email_address, |
|
363 |
'cancel_url': change_email.get_cancel_url() |
|
364 |
} |
|
365 |
messages.warning(request, msg) |
|
366 |
|
|
356 | 367 |
return render_response(template_name, |
357 | 368 |
profile_form=form, |
358 | 369 |
user_providers=user_providers, |
... | ... | |
710 | 721 |
extra_context)) |
711 | 722 |
|
712 | 723 |
|
724 |
@require_http_methods(["GET"]) |
|
725 |
@required_auth_methods_assigned(allow_access=True) |
|
726 |
@login_required |
|
727 |
@cookie_fix |
|
728 |
@signed_terms_required |
|
729 |
@transaction.commit_on_success |
|
730 |
def change_email_cancel(request, cancel_key): |
|
731 |
email_change = get_object_or_404(EmailChange, cancel_key=cancel_key) |
|
732 |
email_change.delete() |
|
733 |
msg = _(astakos_messages.EMAIL_CHANGE_REQUEST_CANCELED) |
|
734 |
messages.success(request, msg) |
|
735 |
return HttpResponseRedirect(reverse('edit_profile')) |
|
736 |
|
|
737 |
|
|
738 |
|
|
713 | 739 |
@require_http_methods(["GET", "POST"]) |
714 | 740 |
@cookie_fix |
715 | 741 |
@transaction.commit_on_success |
... | ... | |
723 | 749 |
if not settings.EMAILCHANGE_ENABLED: |
724 | 750 |
raise PermissionDenied |
725 | 751 |
|
752 |
objects = EmailChange.objects |
|
726 | 753 |
if activation_key: |
727 | 754 |
try: |
728 | 755 |
try: |
729 |
email_change = EmailChange.objects.get( |
|
730 |
activation_key=activation_key) |
|
756 |
email_change = objects.get(activation_key=activation_key) |
|
731 | 757 |
except EmailChange.DoesNotExist: |
732 |
logger.error("[change-email] Invalid or used activation " |
|
758 |
messages.error(request, |
|
759 |
_(astakos_messages.INVALID_CHANGE_EMAIL_ACTIVATION_KEY)) |
|
760 |
logger.error("[change-email] Invalid change email activation " |
|
733 | 761 |
"code, %s", activation_key) |
734 |
raise Http404
|
|
762 |
return HttpResponseRedirect(reverse('index'))
|
|
735 | 763 |
|
736 | 764 |
if ( |
737 | 765 |
request.user.is_authenticated() and |
... | ... | |
741 | 769 |
user = EmailChange.objects.change_email(activation_key) |
742 | 770 |
msg = _(astakos_messages.EMAIL_CHANGED) |
743 | 771 |
messages.success(request, msg) |
744 |
transaction.commit() |
|
745 | 772 |
return HttpResponseRedirect(reverse('edit_profile')) |
746 | 773 |
else: |
747 | 774 |
logger.error("[change-email] Access from invalid user, %s %s", |
748 | 775 |
email_change.user, request.user.log_display) |
749 | 776 |
raise PermissionDenied |
750 |
except ValueError, e: |
|
751 |
messages.error(request, e) |
|
752 |
transaction.rollback() |
|
753 |
return HttpResponseRedirect(reverse('index')) |
|
777 |
except ValueError: |
|
778 |
# this means that new email which corresponds to this activation url |
|
779 |
# is no longer available |
|
780 |
|
|
781 |
# invalidate change email object |
|
782 |
email_change.delete() |
|
783 |
logger.error("[change-email] Email change with code '%s' failed. " |
|
784 |
"Email address '%s' no longer available", |
|
785 |
activation_key, email_change.new_email_address) |
|
786 |
messages.error(request, astakos_messages.NEW_EMAIL_ADDR_RESERVED) |
|
787 |
return HttpResponseRedirect(reverse('edit_profile')) |
|
788 |
|
|
754 | 789 |
|
755 | 790 |
return render_response(confirm_template_name, |
756 | 791 |
modified_user=user if 'user' in locals() |
... | ... | |
758 | 793 |
context_instance=get_context(request, |
759 | 794 |
extra_context)) |
760 | 795 |
|
796 |
# redirect to login |
|
761 | 797 |
if not request.user.is_authenticated(): |
762 | 798 |
path = quote(request.get_full_path()) |
763 | 799 |
url = request.build_absolute_uri(reverse('index')) |
... | ... | |
768 | 804 |
change = request.user.emailchanges.get() |
769 | 805 |
if change.activation_key_expired(): |
770 | 806 |
change.delete() |
771 |
transaction.commit() |
|
772 | 807 |
return HttpResponseRedirect(reverse('email_change')) |
773 | 808 |
|
774 | 809 |
form = EmailChangeForm(request.POST or None) |
... | ... | |
776 | 811 |
ec = form.save(request, email_template_name, request) |
777 | 812 |
msg = _(astakos_messages.EMAIL_CHANGE_REGISTERED) |
778 | 813 |
messages.success(request, msg) |
779 |
transaction.commit() |
|
780 | 814 |
return HttpResponseRedirect(reverse('edit_profile')) |
781 | 815 |
|
782 | 816 |
if request.user.email_change_is_pending(): |
Also available in: Unified diff