def social_disconnect(request, backend, association_id=None): """Wrapper around social_django.views.disconnect. - Requires POST (to avoid CSRF on auth) - Blocks disconnecting last entry """ if request.user.social_auth.count() <= 1: messages.error(request, _('Could not remove user identity')) return redirect_profile('#account') return disconnect(request, backend, association_id)
def social_disconnect(request, backend, association_id=None): """Wrapper around social_django.views.disconnect. - Requires POST (to avoid CSRF on auth) - Blocks disconnecting last entry """ # Block removal of last social auth if request.user.social_auth.count() <= 1: messages.error(request, _("Could not remove user identity")) return redirect_profile("#account") # Block removal of last verified email verified = VerifiedEmail.objects.filter(social__user=request.user).exclude( social__provider=backend, social_id=association_id) if not verified.exists(): messages.error( request, _("Add another identity by confirming your e-mail address first."), ) return redirect_profile("#account") return disconnect(request, backend, association_id)
def logout(request): django_logout(request) disconnect(request, AUTH_BACKEND) return render(request, 'registration/login.html')