From b6fb496a1d6d0c0b8bc96444664ef61292649d30 Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Wed, 13 Jul 2011 11:39:46 +0200 Subject: [PATCH] Restrict the access. fixed #150 --- extensions/sievefilters/views.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/extensions/sievefilters/views.py b/extensions/sievefilters/views.py index b46533d1b..51adf8b01 100644 --- a/extensions/sievefilters/views.py +++ b/extensions/sievefilters/views.py @@ -5,13 +5,14 @@ from django.contrib.auth.decorators import login_required from django.utils.translation import ugettext as _ from django.core.urlresolvers import reverse from modoboa.lib import _render, _render_to_string, _render_error, \ - ajax_response, ajax_simple_response, parameters + ajax_response, ajax_simple_response, is_not_localadmin, parameters from modoboa.lib.connections import ConnectionError from modoboa.auth.lib import get_password from lib import * from forms import * @login_required +@is_not_localadmin() def index(request, tplname="sievefilters/index.html"): try: sc = SieveClient(user=request.user.username, @@ -35,12 +36,14 @@ def index(request, tplname="sievefilters/index.html"): }) @login_required +@is_not_localadmin() def get_templates(request, ftype): if ftype == "condition": return ajax_simple_response(FilterForm.cond_templates) return ajax_simple_response(FilterForm.action_templates) @login_required +@is_not_localadmin() def get_user_folders(request): from modoboa.extensions.webmail.lib import IMAPconnector @@ -50,6 +53,7 @@ def get_user_folders(request): return ajax_simple_response(ret) @login_required +@is_not_localadmin() def getfs(request, name): sc = SieveClient(user=request.user.username, password=request.session["password"]) @@ -103,6 +107,7 @@ def submitfilter(request, setname, okmsg, tplname, tplctx, update=False, sc=None return ajax_response(request, status="ko", template=tplname, **tplctx) @login_required +@is_not_localadmin() def newfilter(request, setname, tplname="sievefilters/filter.html"): ctx = {"title" : _("New filter"), "actionurl" : reverse(newfilter, args=[setname])} @@ -116,6 +121,7 @@ def newfilter(request, setname, tplname="sievefilters/filter.html"): return _render(request, tplname, ctx) @login_required +@is_not_localadmin() def editfilter(request, setname, fname, tplname="sievefilters/filter.html"): ctx = {"title" : _("Edit filter"), "actionurl" : reverse(editfilter, args=[setname, fname])} @@ -135,6 +141,7 @@ def editfilter(request, setname, fname, tplname="sievefilters/filter.html"): return _render(request, tplname, ctx) @login_required +@is_not_localadmin() def removefilter(request, setname, fname): sc = SieveClient(user=request.user.username, password=request.session["password"]) @@ -145,6 +152,7 @@ def removefilter(request, setname, fname): return ajax_response(request, "ko", respmsg=_("Failed to remove filter")) @login_required +@is_not_localadmin() def savefs(request, name): if not request.POST.has_key("scriptcontent"): return @@ -158,6 +166,7 @@ def savefs(request, name): return ajax_response(request, respmsg=_("Filters set saved")) @login_required +@is_not_localadmin() def new_filters_set(request, tplname="sievefilters/newfiltersset.html"): ctx = {"title" : _("Create a new filters set"), "fname" : "newfiltersset", @@ -188,6 +197,7 @@ def new_filters_set(request, tplname="sievefilters/newfiltersset.html"): return _render(request, tplname, ctx) @login_required +@is_not_localadmin() def remove_filters_set(request, name): sc = SieveClient(user=request.user.username, password=request.session["password"]) @@ -198,6 +208,7 @@ def remove_filters_set(request, name): return ajax_response(request, respmsg=_("Filters set deleted")) @login_required +@is_not_localadmin() def activate_filters_set(request, name): sc = SieveClient(user=request.user.username, password=request.session["password"]) @@ -208,6 +219,7 @@ def activate_filters_set(request, name): return ajax_response(request, respmsg=_("Filters set activated")) @login_required +@is_not_localadmin() def download_filters_set(request, name): sc = SieveClient(user=request.user.username, password=request.session["password"]) @@ -223,6 +235,7 @@ def download_filters_set(request, name): return resp @login_required +@is_not_localadmin() def toggle_filter_state(request, setname, fname): sc = SieveClient(user=request.user.username, password=request.session["password"]) @@ -260,9 +273,11 @@ def move_filter(request, setname, fname, direction): return ajax_response(request, template="sievefilters/filters.html", fs=fset) @login_required +@is_not_localadmin() def move_filter_up(request, setname, fname): return move_filter(request, setname, fname, "up") @login_required +@is_not_localadmin() def move_filter_down(request, setname, fname): return move_filter(request, setname, fname, "down")