From f7436815b83cd2ea2b04039dd42e054b5de994b0 Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Tue, 17 Dec 2013 11:35:48 +0100 Subject: [PATCH] Few fixes. --- modoboa/extensions/sievefilters/views.py | 23 +++++++++++++---------- modoboa/lib/webutils.py | 7 +++++-- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/modoboa/extensions/sievefilters/views.py b/modoboa/extensions/sievefilters/views.py index 0352a23d4..7c5435251 100644 --- a/modoboa/extensions/sievefilters/views.py +++ b/modoboa/extensions/sievefilters/views.py @@ -1,5 +1,6 @@ # coding: utf-8 from sievelib.managesieve import Error +from sievelib.commands import BadArgument, BadValue from rfc6266 import build_header from django.shortcuts import render from django.http import HttpResponse @@ -11,6 +12,7 @@ from modoboa.lib import parameters from modoboa.lib.webutils import _render_error, \ ajax_response, render_to_json_response from modoboa.lib.connections import ConnectionError +from modoboa.lib.exceptions import BadRequest from modoboa.extensions.admin.lib import needs_mailbox from .lib import SieveClient, SieveClientError from .forms import ( @@ -115,18 +117,19 @@ def submitfilter(request, setname, okmsg, tplname, tplctx, update=False, sc=None match_type = "anyof" conditions = [("true",)] fltname = form.cleaned_data["name"].encode("utf-8") - if not update: - fset.addfilter(fltname, conditions, actions, - match_type) - else: - oldname = request.POST["oldname"].encode("utf-8") - fset.updatefilter( - oldname, fltname, conditions, actions, match_type - ) + try: + if not update: + fset.addfilter(fltname, conditions, actions, + match_type) + else: + oldname = request.POST["oldname"].encode("utf-8") + fset.updatefilter( + oldname, fltname, conditions, actions, match_type + ) + except (BadArgument, BadValue) as inst: + raise BadRequest(str(inst)) sc.pushscript(fset.name, str(fset)) return render_to_json_response(okmsg) - #tplctx = build_filter_ctx(tplctx, form) - #return ajax_response(request, status="ko", template=tplname, **tplctx) return render_to_json_response({'form_errors': form.errors}, status=400) diff --git a/modoboa/lib/webutils.py b/modoboa/lib/webutils.py index df578c2e1..9b6ecccf1 100644 --- a/modoboa/lib/webutils.py +++ b/modoboa/lib/webutils.py @@ -154,8 +154,11 @@ def topredirection(request): if request.user.group == 'SimpleUsers': topredir = parameters.get_admin("DEFAULT_TOP_REDIRECTION", app="core") - infos = exts_pool.get_extension_infos(topredir) - path = infos["url"] if infos["url"] else infos["name"] + if topredir != "user": + infos = exts_pool.get_extension_infos(topredir) + path = infos["url"] if infos["url"] else infos["name"] + else: + path = reverse("modoboa.core.views.user.index") else: path = reverse("domains") return HttpResponseRedirect(path)