Beispiel #1
0
def login_view(request):
    """Log in user."""

    csrf_tk = {}
    csrf_tk.update(csrf(request))
    error = False
    initial = {}

    # Redirecting user once logged in?

    if "next" in request.GET:
        next_page = request.GET["next"]
    else:
        next_page = None
    if request.method == "POST":
        form = LoginForm(request.POST)
        username = request.POST["username"]
        password = request.POST["password"]
        user = authenticate(username=username, password=password)
        if user is not None:
            profile = get_object_or_404(Profile, user=user)
            if user.is_active:
                if profile.can_read_now():
                    login(request, user)
                    request.session["get_token"] = generate_token()
                    if "remember" not in request.POST:
                        request.session.set_expiry(0)
                    profile.last_ip_address = get_client_ip(request)
                    profile.save()
                    # redirect the user if needed
                    try:
                        return redirect(next_page)
                    except:
                        return redirect(reverse("homepage"))
                else:
                    messages.error(request,
                                   _(u"Vous n'êtes pas autorisé à vous connecter "
                                     u"sur le site, vous avez été banni par un "
                                     u"modérateur."))
            else:
                messages.error(request,
                               _(u"Vous n'avez pas encore activé votre compte, "
                                 u"vous devez le faire pour pouvoir vous "
                                 u"connecter sur le site. Regardez dans vos "
                                 u"mails : {}.").format(user.email))
        else:
            messages.error(request,
                           _(u"Les identifiants fournis ne sont pas valides."))
            initial = {'username': username}

    form = LoginForm(initial=initial)
    if next_page is not None:
        form.helper.form_action += "?next=" + next_page

    csrf_tk["error"] = error
    csrf_tk["form"] = form
    csrf_tk["next_page"] = next_page
    return render(request, "member/login.html",
                  {"form": form,
                   "csrf_tk": csrf_tk})
Beispiel #2
0
def login_view(request):
    """Log in user."""

    csrf_tk = {}
    csrf_tk.update(csrf(request))
    error = False

    # Redirecting user once logged in?

    if "next" in request.GET:
        next_page = request.GET["next"]
    else:
        next_page = None
    if request.method == "POST":
        form = LoginForm(request.POST)
        username = request.POST["username"]
        password = request.POST["password"]
        user = authenticate(username=username, password=password)
        if user is not None:
            profile = get_object_or_404(Profile, user=user)
            if user.is_active:
                if profile.can_read_now():
                    login(request, user)
                    request.session["get_token"] = generate_token()
                    if "remember" not in request.POST:
                        request.session.set_expiry(0)
                    profile.last_ip_address = get_client_ip(request)
                    profile.save()
                    # redirect the user if needed
                    try:
                        return redirect(next_page)
                    except:
                        return redirect(reverse("zds.pages.views.home"))
                else:
                    messages.error(request,
                                   "Vous n'êtes pas autorisé à vous connecter "
                                   "sur le site, vous avez été banni par un "
                                   "modérateur")
            else:
                messages.error(request,
                               "Vous n'avez pas encore activé votre compte, "
                               "vous devez le faire pour pouvoir vous "
                               "connecter sur le site. Regardez dans vos "
                               "mails : " + str(user.email))
        else:
            messages.error(request,
                           "Les identifiants fournis ne sont pas valides")
    form = LoginForm()
    form.helper.form_action = reverse("zds.member.views.login_view")
    if next_page is not None:
        form.helper.form_action += "?next=" + next_page
    csrf_tk["error"] = error
    csrf_tk["form"] = form
    csrf_tk["next_page"] = next_page
    return render_template("member/login.html",
                           {"form": form,
                            "csrf_tk": csrf_tk,
                            "next_page": next_page})
Beispiel #3
0
def login_view(request):
    '''Log in user'''
    csrf_tk = {}
    csrf_tk.update(csrf(request))

    error = False

    # Redirecting user once logged in?
    if request.GET.has_key('next'):
        next_page = request.GET['next']
    else:
        next_page = None

    if request.method == 'POST':
        form = LoginForm(request.POST)
        if form.is_valid():
            username = request.POST['username']
            password = request.POST['password']
            user = authenticate(username=username, password=password)
            if user is not None:
                login(request, user)
                request.session['get_token'] = generate_token()
                if not 'remember' in request.POST:
                    request.session.set_expiry(0)

                try:
                    profile = get_object_or_404(Profile, user=request.user)
                    profile.last_ip_address = get_client_ip(request)
                    profile.save()
                    # Annotation isn't possible for this method. So we check
                    # if the user is ban when we retrieved him.
                    if not profile.can_read_now():
                        logout_view(request)
                except:
                    profile = None

                # redirect the user if needed
                try:
                    return redirect(next_page)
                except:
                    return redirect(reverse('zds.pages.views.home'))
            else:
                error = 'Les identifiants fournis ne sont pas valides'
        else:
            error = 'Veuillez spécifier votre identifiant et votre mot de passe'
    else:

        form = LoginForm()
    csrf_tk['error'] = error
    csrf_tk['form'] = form
    csrf_tk['next_page'] = next_page
    return render_template('member/login.html', csrf_tk)
Beispiel #4
0
def login_view(request):
    '''Log in user'''
    csrf_tk = {}
    csrf_tk.update(csrf(request))

    error = False

    # Redirecting user once logged in?
    if request.GET.has_key('next'):
        next_page = request.GET['next']
    else:
        next_page = None

    if request.method == 'POST':
        form = LoginForm(request.POST)
        if form.is_valid():
            username = request.POST['username']
            password = request.POST['password']
            user = authenticate(username=username, password=password)
            if user is not None:
                login(request, user)
                request.session['get_token'] = generate_token()
                if not 'remember' in request.POST:
                    request.session.set_expiry(0)
                
                try:
                    profile = get_object_or_404(Profile, user=request.user)
                    profile.last_ip_address = get_client_ip(request)
                    profile.save()
                    # Annotation isn't possible for this method. So we check
                    # if the user is ban when we retrieved him.
                    if not profile.can_read_now():
                        logout_view(request)
                except :
                    profile= None

                # redirect the user if needed
                try:
                    return redirect(next_page)
                except:
                    return redirect(reverse('zds.pages.views.home'))
            else:
                error = 'Les identifiants fournis ne sont pas valides'
        else:
            error = 'Veuillez spécifier votre identifiant et votre mot de passe'
    else:

        form = LoginForm()
    csrf_tk['error'] = error
    csrf_tk['form'] = form
    csrf_tk['next_page'] = next_page
    return render_template('member/login.html', csrf_tk)
Beispiel #5
0
def login_view(request):
    """Log in user."""

    csrf_tk = {}
    csrf_tk.update(csrf(request))
    error = False
    initial = {}

    # Redirecting user once logged in?

    if 'next' in request.GET:
        next_page = request.GET['next']
    else:
        next_page = None
    if request.method == 'POST':
        form = LoginForm(request.POST)
        username = request.POST['username']
        password = request.POST['password']
        user = authenticate(username=username, password=password)
        if user is not None:
            profile = get_object_or_404(Profile, user=user)
            if user.is_active:
                if profile.can_read_now():
                    login(request, user)
                    request.session['get_token'] = generate_token()
                    if 'remember' not in request.POST:
                        request.session.set_expiry(0)
                    profile.last_ip_address = get_client_ip(request)
                    profile.save()
                    # redirect the user if needed
                    try:
                        return redirect(next_page)
                    except:
                        return redirect(reverse('homepage'))
                else:
                    messages.error(
                        request,
                        _(u'Vous n\'êtes pas autorisé à vous connecter '
                          u'sur le site, vous avez été banni par un '
                          u'modérateur.'))
            else:
                messages.error(
                    request,
                    _(u'Vous n\'avez pas encore activé votre compte, '
                      u'vous devez le faire pour pouvoir vous '
                      u'connecter sur le site. Regardez dans vos '
                      u'mails : {}.').format(user.email))
        else:
            messages.error(request,
                           _(u'Les identifiants fournis ne sont pas valides.'))
            initial = {'username': username}

    form = LoginForm(initial=initial)
    if next_page is not None:
        form.helper.form_action += '?next=' + next_page

    csrf_tk['error'] = error
    csrf_tk['form'] = form
    csrf_tk['next_page'] = next_page
    return render(request, 'member/login.html', {
        'form': form,
        'csrf_tk': csrf_tk
    })
Beispiel #6
0
def login_view(request):
    """Logs user in."""
    next_page = request.GET.get('next', '/')
    if next_page in [reverse('member-login'), reverse('register-member'), reverse('member-logout')]:
        next_page = '/'
    csrf_tk = {'next_page': next_page}
    csrf_tk.update(csrf(request))
    error = False

    if request.method != 'POST':
        form = LoginForm()
    else:
        form = LoginForm(request.POST)
    if form.is_valid():
        username = form.cleaned_data['username']
        password = form.cleaned_data['password']
        user = authenticate(username=username, password=password)
        if user is None:
            initial = {'username': username}
            if User.objects.filter(username=username).exists():
                messages.error(
                    request, _(
                        'Le mot de passe saisi est incorrect. '
                        'Cliquez sur le lien « Mot de passe oublié ? » '
                        'si vous ne vous en souvenez plus.'
                    )
                )
            else:
                messages.error(
                    request, _(
                        'Ce nom d’utilisateur est inconnu. '
                        'Si vous ne possédez pas de compte, '
                        'vous pouvez vous inscrire.'
                    )
                )
            form = LoginForm(initial=initial)
            if next_page is not None:
                form.helper.form_action += '?next=' + next_page
            csrf_tk['error'] = error
            csrf_tk['form'] = form
            return render(request, 'member/login.html', {
                'form': form,
                'csrf_tk': csrf_tk
            })
        profile = get_object_or_404(Profile, user=user)
        if not user.is_active:
            messages.error(
                request,
                _(
                    'Vous n\'avez pas encore activé votre compte, '
                    'vous devez le faire pour pouvoir vous '
                    'connecter sur le site. Regardez dans vos '
                    'mails : {}.'
                ).format(user.email)
            )
        elif not profile.can_read_now():
            messages.error(
                request,
                _(
                    'Vous n\'êtes pas autorisé à vous connecter '
                    'sur le site, vous avez été banni par un '
                    'modérateur.'
                )
            )
        else:
            login(request, user)
            request.session['get_token'] = generate_token()
            if 'remember' not in request.POST:
                request.session.set_expiry(0)
            profile.last_ip_address = get_client_ip(request)
            profile.save()
            # Redirect the user if needed.
            # Set the cookie for Clem smileys.
            # (For people switching account or clearing cookies
            # after a browser session.)
            try:
                response = redirect(resolve(next_page).url_name)
            except NoReverseMatch:
                response = redirect(next_page)
            except Resolver404:
                response = redirect(reverse('homepage'))
            set_old_smileys_cookie(response, profile)
            return response

    if next_page is not None:
        form.helper.form_action += '?next=' + next_page
    csrf_tk['error'] = error
    csrf_tk['form'] = form
    return render(request, 'member/login.html', {
        'form': form,
        'csrf_tk': csrf_tk
    })
Beispiel #7
0
def login_view(request):
    """Logs user in."""
    next_page = request.GET.get("next", "/")
    if next_page in [
            reverse("member-login"),
            reverse("register-member"),
            reverse("member-logout")
    ]:
        next_page = "/"
    csrf_tk = {"next_page": next_page}
    csrf_tk.update(csrf(request))
    error = False

    if request.method != "POST":
        form = LoginForm()
    else:
        form = LoginForm(request.POST)
    if form.is_valid():
        username = form.cleaned_data["username"]
        password = form.cleaned_data["password"]
        user = authenticate(username=username, password=password)
        if user is None:
            initial = {"username": username}
            if User.objects.filter(username=username).exists():
                messages.error(
                    request,
                    _("Le mot de passe saisi est incorrect. "
                      "Cliquez sur le lien « Mot de passe oublié ? » "
                      "si vous ne vous en souvenez plus."),
                )
            else:
                messages.error(
                    request,
                    _("Ce nom d’utilisateur est inconnu. "
                      "Si vous ne possédez pas de compte, "
                      "vous pouvez vous inscrire."),
                )
            form = LoginForm(initial=initial)
            if next_page is not None:
                form.helper.form_action += "?next=" + next_page
            csrf_tk["error"] = error
            csrf_tk["form"] = form
            return render(request, "member/login.html", {
                "form": form,
                "csrf_tk": csrf_tk
            })
        profile = get_object_or_404(Profile, user=user)
        if not user.is_active:
            messages.error(
                request,
                _("Vous n'avez pas encore activé votre compte, "
                  "vous devez le faire pour pouvoir vous "
                  "connecter sur le site. Regardez dans vos "
                  "mails : {}.").format(user.email),
            )
        elif not profile.can_read_now():
            messages.error(
                request,
                _("Vous n'êtes pas autorisé à vous connecter "
                  "sur le site, vous avez été banni par un "
                  "modérateur."),
            )
        else:
            login(request, user)
            request.session["get_token"] = generate_token()
            if "remember" not in request.POST:
                request.session.set_expiry(0)
            profile.last_ip_address = get_client_ip(request)
            profile.save()
            # Redirect the user if needed.
            # Set the cookie for Clem smileys.
            # (For people switching account or clearing cookies
            # after a browser session.)
            try:
                response = redirect(resolve(next_page).url_name)
            except NoReverseMatch:
                response = redirect(next_page)
            except Resolver404:
                response = redirect(reverse("homepage"))
            return response

    if next_page is not None:
        form.helper.form_action += "?next=" + next_page
    csrf_tk["error"] = error
    csrf_tk["form"] = form
    return render(request, "member/login.html", {
        "form": form,
        "csrf_tk": csrf_tk,
        "next_page": next_page
    })