예제 #1
0
def login(request):
    bad_credentials = False
    if request.method == 'POST':
        form = EmailPasswordForm(request.POST)
        if form.is_valid():
            email = form.cleaned_data["email"]
            password = form.cleaned_data["password"]
            if len(password):
                user = authenticate(username=email, password=password)
                if user is not None and user.is_active:
                    auth_login(request, user)
                    return redirect("hc-checks")
                bad_credentials = True
            else:
                try:
                    user = User.objects.get(email=email)
                except User.DoesNotExist:
                    user = _make_user(email)
                    _associate_demo_check(request, user)

                user.profile.send_instant_login_link()
                return redirect("hc-login-link-sent")

    else:
        form = EmailPasswordForm()

    bad_link = request.session.pop("bad_link", None)
    ctx = {
        "form": form,
        "bad_credentials": bad_credentials,
        "bad_link": bad_link
    }
    return render(request, "accounts/login.html", ctx)
예제 #2
0
def login(request):
    bad_credentials = False
    if request.method == "POST":
        form = EmailPasswordForm(request.POST)
        if form.is_valid():
            email = form.cleaned_data["email"]
            password = form.cleaned_data["password"]
            if len(password):
                user = authenticate(username=email, password=password)
                if user is not None and user.is_active:
                    auth_login(request, user)
                    return redirect("hc-checks")
                bad_credentials = True
            else:
                try:
                    user = User.objects.get(email=email)
                except User.DoesNotExist:
                    user = _make_user(email)
                    _associate_demo_check(request, user)

                profile = Profile.objects.for_user(user)
                profile.send_instant_login_link()
                return redirect("hc-login-link-sent")

    else:
        form = EmailPasswordForm()

    bad_link = request.session.pop("bad_link", None)
    ctx = {"form": form, "bad_credentials": bad_credentials, "bad_link": bad_link}
    return render(request, "accounts/login.html", ctx)
예제 #3
0
def login(request):
    form = EmailPasswordForm()
    magic_form = ExistingEmailForm()

    if request.method == 'POST':
        if request.POST.get("action") == "login":
            form = EmailPasswordForm(request.POST)
            if form.is_valid():
                auth_login(request, form.user)
                return _redirect_after_login(request)

        else:
            magic_form = ExistingEmailForm(request.POST)
            if magic_form.is_valid():
                profile = Profile.objects.for_user(magic_form.user)

                redirect_url = request.GET.get("next")
                if _is_whitelisted(redirect_url):
                    profile.send_instant_login_link(redirect_url=redirect_url)
                else:
                    profile.send_instant_login_link()

                return redirect("hc-login-link-sent")

    bad_link = request.session.pop("bad_link", None)
    ctx = {
        "page": "login",
        "form": form,
        "magic_form": magic_form,
        "bad_link": bad_link
    }
    return render(request, "accounts/login.html", ctx)
예제 #4
0
def login(request):
    bad_credentials = False
    if request.method == "POST":
        form = EmailPasswordForm(request.POST)
        if form.is_valid():
            email = form.cleaned_data["email"]
            if settings.ALLOWED_DOMAIN:
                domain = email.split("@")[1]
                if domain != settings.ALLOWED_DOMAIN.lower():
                    return HttpResponseBadRequest("invalid email domain")

            password = form.cleaned_data["password"]
            if len(password):
                user = authenticate(username=email, password=password)
                if user is not None and user.is_active:
                    auth_login(request, user)
                    return redirect("hc-checks")
                bad_credentials = True
            else:
                try:
                    user = User.objects.get(email=email)
                except User.DoesNotExist:
                    user = _make_user(email)
                    _associate_demo_check(request, user)

                user.profile.send_instant_login_link()
                return redirect("hc-login-link-sent")

    else:
        form = EmailPasswordForm()

    bad_link = request.session.pop("bad_link", None)
    ctx = {"form": form, "bad_credentials": bad_credentials, "bad_link": bad_link}
    return render(request, "accounts/login.html", ctx)