From 303c84eb649cd8572485197753ed02e8217aff0d Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Tue, 10 Apr 2012 16:41:12 +0200 Subject: [PATCH] * Fixed forwards definition * Cleanup * Do not check for release requests if the user is a simple user (see #227) see #204 --- extensions/amavis_quarantine/__init__.py | 6 +++++- extensions/postfix_autoreply/__init__.py | 5 ++++- extensions/sievefilters/views.py | 1 + lib/middleware.py | 6 ++---- lib/templatetags/libextras.py | 4 ++-- templates/common/boxerror.html | 4 ---- templates/common/error.html | 3 +-- templates/common/error_simple.html | 4 ---- templates/nlayout.html | 2 +- templates/userprefs/preferences.html | 10 ++++++++++ templates/userprefs/setforward.html | 23 ----------------------- userprefs/templatetags/uprefs_extras.py | 19 +++++++++---------- userprefs/views.py | 24 ++++++++++++++++-------- 13 files changed, 51 insertions(+), 60 deletions(-) delete mode 100644 templates/common/boxerror.html delete mode 100644 templates/common/error_simple.html delete mode 100644 templates/userprefs/setforward.html diff --git a/extensions/amavis_quarantine/__init__.py b/extensions/amavis_quarantine/__init__.py index 29a71dba1..d19402022 100644 --- a/extensions/amavis_quarantine/__init__.py +++ b/extensions/amavis_quarantine/__init__.py @@ -97,7 +97,11 @@ def remove_user_record(mailbox): Users.objects.get(email=mailbox.full_address).delete() @events.observe("GetStaticContent") -def extra_static_content(): +def extra_static_content(user): + if parameters.get_admin("USER_CAN_RELEASE") == "yes" \ + or user.group == "SimpleUsers": + return [] + tpl = Template(""" - {% extra_head_content %} + {% extra_head_content user %} {% block html_head %}{% endblock %} diff --git a/templates/userprefs/preferences.html b/templates/userprefs/preferences.html index 35bf1dc9e..fd9f0bf74 100644 --- a/templates/userprefs/preferences.html +++ b/templates/userprefs/preferences.html @@ -2,6 +2,16 @@ {% load i18n uprefs_extras libextras %} {% block html_head %} - -{% endblock %} -{% block content %} -{% load i18n %} -

{% trans "Define your forward" %}

- -{% if error %}
{{ error }}
{% endif %} -{% url userprefs.views.setforward as action_url %} -
- {% include "common/genericform.html" %} - -
- -
-
-{% endblock %} diff --git a/userprefs/templatetags/uprefs_extras.py b/userprefs/templatetags/uprefs_extras.py index eec2339d1..30f520583 100644 --- a/userprefs/templatetags/uprefs_extras.py +++ b/userprefs/templatetags/uprefs_extras.py @@ -16,6 +16,15 @@ def uprefs_menu(selection, user): "url" : "", "label" : _("Preferences")}, ] + if user.group == 'SimpleUsers': + entries += [ + {"name" : "setforwards", + "url" : reverse("modoboa.userprefs.views.setforward"), + "modal" : True, + "modalcb" : "forwardform_cb", + "label" : _("Forward")} + ] + entries += events.raiseQueryEvent("UserMenuDisplay", "uprefs_menu", user) return render_to_string('common/menu.html', { @@ -52,16 +61,6 @@ def user_menu(user, selection): "label" : _("Logout"), "img" : "icon-off"}] - # if user.group == 'SimpleUsers': - # entries[0]["menu"] += [{ - # "name" : "setforwards", - # "url" : reverse("modoboa.userprefs.views.setforward"), - # "img" : static_url("pics/alias.png"), - # "label" : _("Forward"), - # "class" : "boxed", - # "rel" : "{handler:'iframe',size:{x:360,y:350},closeBtn:true}" - # }] - return render_to_string("common/menulist.html", {"selection" : selection, "entries" : entries, "user" : user}) diff --git a/userprefs/views.py b/userprefs/views.py index 004aab8d2..3c8daebd6 100644 --- a/userprefs/views.py +++ b/userprefs/views.py @@ -23,7 +23,7 @@ def changepassword(request, tplname="common/generic_modal_form.html"): res = events.raiseQueryEvent("PasswordChange", request.user) if True in res: ctx = dict(error=_("Password change is disabled for this user")) - return _render_error(request, errortpl="error_simple", user_context=ctx) + return _render_error(request, user_context=ctx) ctx = dict( title=_("Change password"), @@ -55,8 +55,15 @@ def changepassword(request, tplname="common/generic_modal_form.html"): @login_required @user_passes_test(lambda u: u.belongs_to_group('SimpleUsers')) -def setforward(request, tplname="userprefs/setforward.html"): - mb = Mailbox.objects.get(user=request.user.id) +def setforward(request, tplname="common/generic_modal_form.html"): + mb = request.user.mailbox_set.all()[0] + ctx = dict( + title=_("Define a forward"), + formid="forwardform", + action=reverse(setforward), + action_label=_("Update"), + action_classes="submit", + ) try: al = Alias.objects.get(address=mb.address, domain__name=mb.domain.name) @@ -80,9 +87,11 @@ def setforward(request, tplname="userprefs/setforward.html"): return ajax_response(request, respmsg=_("Forward updated")) except BadDestination, e: error = str(e) - return ajax_response(request, status="ko", template=tplname, - form=form, error=error) + ctx.update(form=form, error=error) + return ajax_response(request, status="ko", template=tplname, **ctx) + form = ForwardForm() + print al if al is not None: form.fields["dest"].initial = al.extmboxes try: @@ -91,9 +100,8 @@ def setforward(request, tplname="userprefs/setforward.html"): pass else: form.fields["keepcopies"].initial = True - return _render(request, tplname, { - "form" : form - }) + ctx.update(form=form) + return _render(request, tplname, ctx) @login_required def preferences(request):