def profile(request, tplname='userprefs/profile.html'): update_password = True if True in events.raiseQueryEvent("PasswordChange", request.user): update_password = False if request.method == "POST": form = ProfileForm( update_password, request.POST, instance=request.user ) if form.is_valid(): form.save() if update_password and form.cleaned_data["confirmation"] != "": request.session["password"] = encrypt(form.cleaned_data["confirmation"]) return ajax_simple_response(dict( status="ok", respmsg=_("Profile updated") )) return ajax_simple_response({ "status": "ko", "errors": form.errors }) form = ProfileForm(update_password, instance=request.user) return ajax_simple_response({ "status": "ok", "content": _render_to_string(request, tplname, { "form": form }) })
def profile(request, tplname='userprefs/profile.html'): update_password = True if True in events.raiseQueryEvent("PasswordChange", request.user): update_password = False if request.method == "POST": form = ProfileForm(update_password, request.POST, instance=request.user) if form.is_valid(): form.save() if update_password and form.cleaned_data["confirmation"] != "": request.session["password"] = encrypt( form.cleaned_data["confirmation"]) return ajax_simple_response( dict(status="ok", respmsg=_("Profile updated"))) return ajax_simple_response({"status": "ko", "errors": form.errors}) form = ProfileForm(update_password, instance=request.user) return ajax_simple_response({ "status": "ok", "content": _render_to_string(request, tplname, {"form": form}) })
def dologin(request): error = None if request.method == "POST": form = LoginForm(request.POST) if form.is_valid(): logger = logging.getLogger('modoboa.auth') user = authenticate(username=form.cleaned_data["username"], password=form.cleaned_data["password"]) if user and user.is_active: login(request, user) if not form.cleaned_data["rememberme"]: request.session.set_expiry(0) if request.user.has_mailbox: request.session["password"] = encrypt( form.cleaned_data["password"]) request.session["django_language"] = \ parameters.get_user(request.user, "LANG", app="general") logger.info( _("User '%s' successfully logged in" % user.username)) events.raiseEvent("UserLogin", request, form.cleaned_data["username"], form.cleaned_data["password"]) nextlocation = request.POST.get("next", None) if nextlocation is None or nextlocation == "None": if user.group != "SimpleUsers": nextlocation = reverse( "modoboa.lib.webutils.topredirection") else: nextlocation = reverse("domains") return HttpResponseRedirect(nextlocation) error = _( "Your username and password didn't match. Please try again.") logger.warning("Failed connection attempt from '%(addr)s' as user '%(user)s'" \ % {"addr": request.META["REMOTE_ADDR"], "user": form.cleaned_data["username"]}) nextlocation = request.POST.get("next", None) httpcode = 401 else: form = LoginForm() nextlocation = request.GET.get("next", None) httpcode = 200 return HttpResponse(_render_to_string( request, "registration/login.html", { "form": form, "error": error, "next": nextlocation, "annoucements": events.raiseQueryEvent("GetAnnouncement", "loginpage") }), status=httpcode)
def dologin(request): error = None if request.method == "POST": form = LoginForm(request.POST) if form.is_valid(): logger = logging.getLogger("modoboa.auth") user = authenticate(username=form.cleaned_data["username"], password=form.cleaned_data["password"]) if user and user.is_active: login(request, user) if not form.cleaned_data["rememberme"]: request.session.set_expiry(0) if request.user.has_mailbox: request.session["password"] = encrypt(form.cleaned_data["password"]) request.session["django_language"] = parameters.get_user(request.user, "LANG", app="general") logger.info(_("User '%s' successfully logged in" % user.username)) events.raiseEvent("UserLogin", request, form.cleaned_data["username"], form.cleaned_data["password"]) nextlocation = request.POST.get("next", None) if nextlocation is None or nextlocation == "None": if user.group == "SimpleUsers": nextlocation = reverse("modoboa.lib.webutils.topredirection") else: nextlocation = reverse("domains") return HttpResponseRedirect(nextlocation) error = _("Your username and password didn't match. Please try again.") logger.warning( "Failed connection attempt from '%(addr)s' as user '%(user)s'" % {"addr": request.META["REMOTE_ADDR"], "user": form.cleaned_data["username"]} ) nextlocation = request.POST.get("next", None) httpcode = 401 else: form = LoginForm() nextlocation = request.GET.get("next", None) httpcode = 200 return HttpResponse( _render_to_string( request, "registration/login.html", { "form": form, "error": error, "next": nextlocation, "annoucements": events.raiseQueryEvent("GetAnnouncement", "loginpage"), }, ), status=httpcode, )