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 %}
-
-{% 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):