Exemple #1
0
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)
Exemple #2
0
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)
Exemple #3
0
def logout(request):
    django_logout(request)
    disconnect(request, AUTH_BACKEND)
    return render(request, 'registration/login.html')