mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-18 05:51:26 +02:00
@@ -10,3 +10,7 @@ class LoginForm(forms.Form):
|
||||
label=_("Password"),
|
||||
widget=forms.PasswordInput(attrs={"class" : "span3"})
|
||||
)
|
||||
rememberme = forms.BooleanField(
|
||||
initial=False,
|
||||
required=False
|
||||
)
|
||||
|
||||
+31
-26
@@ -1,11 +1,11 @@
|
||||
# coding: utf-8
|
||||
from django.views.decorators.cache import never_cache
|
||||
from django.contrib.auth import authenticate, login, logout
|
||||
from django.http import HttpResponse, HttpResponseRedirect
|
||||
from django.template import RequestContext
|
||||
from django.shortcuts import render_to_response
|
||||
from django.http import HttpResponseRedirect
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.utils.translation import ugettext as _
|
||||
from modoboa.lib import events
|
||||
from modoboa.lib.webutils import _render
|
||||
from modoboa.admin import views as admviews
|
||||
from forms import LoginForm
|
||||
from modoboa.auth.lib import *
|
||||
@@ -14,37 +14,42 @@ def dologin(request):
|
||||
error = None
|
||||
if request.method == "POST":
|
||||
form = LoginForm(request.POST)
|
||||
user = authenticate(username=request.POST["username"],
|
||||
password=request.POST["password"])
|
||||
if user:
|
||||
if user.is_active:
|
||||
login(request, user)
|
||||
|
||||
if request.user.id != 1:
|
||||
request.session["password"] = encrypt(request.POST["password"])
|
||||
if form.is_valid():
|
||||
user = authenticate(username=form.cleaned_data["username"],
|
||||
password=form.cleaned_data["password"])
|
||||
if user:
|
||||
if user.is_active:
|
||||
if not form.cleaned_data["rememberme"]:
|
||||
request.session.set_expiry(0)
|
||||
login(request, user)
|
||||
if request.user.id != 1:
|
||||
request.session["password"] = encrypt(request.POST["password"])
|
||||
|
||||
request.session["django_language"] = \
|
||||
parameters.get_user(request.user, "LANG", app="general")
|
||||
request.session["django_language"] = \
|
||||
parameters.get_user(request.user, "LANG", app="general")
|
||||
|
||||
events.raiseEvent("UserLogin", request,
|
||||
request.POST["username"],
|
||||
request.POST["password"])
|
||||
events.raiseEvent("UserLogin", request,
|
||||
form.cleaned_data["username"],
|
||||
form.cleaned_data["password"])
|
||||
|
||||
next = request.POST["next"]
|
||||
if next.strip() in ["", "None"]:
|
||||
next = reverse(admviews.domains)
|
||||
return HttpResponseRedirect(next)
|
||||
else:
|
||||
error = _("Account is disabled.")
|
||||
error = _("Your username and password didn't match. Please try again.")
|
||||
next = request.POST["next"]
|
||||
if next.strip() in ["", "None"]:
|
||||
next = reverse(admviews.domains)
|
||||
return HttpResponseRedirect(next)
|
||||
else:
|
||||
error = _("Account is disabled.")
|
||||
error = _("Your username and password didn't match. Please try again.")
|
||||
next = request.POST.get("next", None)
|
||||
else:
|
||||
form = LoginForm()
|
||||
next = request.GET.get("next", None)
|
||||
|
||||
next = request.GET.has_key("next") and request.GET["next"] or None
|
||||
return render_to_response("registration/login.html", {
|
||||
return _render(request, "registration/login.html", {
|
||||
"form" : form, "error" : error, "next" : next,
|
||||
"annoucements" : events.raiseQueryEvent("GetAnnouncement", "loginpage")
|
||||
}, context_instance=RequestContext(request))
|
||||
})
|
||||
|
||||
dologin = never_cache(dologin)
|
||||
|
||||
def dologout(request):
|
||||
events.raiseEvent("UserLogout", request)
|
||||
|
||||
@@ -28,10 +28,11 @@
|
||||
<div class="row">
|
||||
<form method="post" action="{% url modoboa.auth.views.dologin %}"
|
||||
class="well span3">
|
||||
{% render_form form %}
|
||||
{% render_field form.username %}
|
||||
{% render_field form.password %}
|
||||
<input type="hidden" name="next" value="{{ next }}" />
|
||||
<div class="form-actions">
|
||||
<label class="pull-left checkbox">
|
||||
<label class="pull-left checkbox" for="id_rememberme">
|
||||
<input type="checkbox" id="id_rememberme" name="rememberme" />{% trans "Remember me" %}
|
||||
</label>
|
||||
<button class="btn btn-primary pull-right" type="submit">{% trans "Log in" %}</button>
|
||||
|
||||
Reference in New Issue
Block a user