* Fixed forwards definition

* Cleanup
* Do not check for release requests if the user is a simple user (see #227)

see #204
This commit is contained in:
Antoine Nguyen
2012-04-10 16:41:12 +02:00
parent 7fa1d0444d
commit 303c84eb64
13 changed files with 51 additions and 60 deletions
+5 -1
View File
@@ -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("""<script type="text/javascript">
function check_nb_requests() {
$.ajax({
+4 -1
View File
@@ -115,7 +115,10 @@ def onModifyMailbox(mailbox, oldmailbox):
alias.save()
@events.observe("GetStaticContent")
def get_static_content():
def get_static_content(user):
if not user.has_mailbox:
return []
return """<script type="text/javascript">
function arform_cb() {
$('#id_untildate').datepicker({format: 'yyyy-mm-dd'});
+1
View File
@@ -35,6 +35,7 @@ def index(request, tplname="sievefilters/index.html"):
else:
default_script = "%s/" % active_script
return _render(request, tplname, {
"selection" : "user",
"active_script" : active_script,
"default_script" : default_script,
"scripts" : sorted(scripts),
+2 -4
View File
@@ -1,5 +1,4 @@
# -*- coding: utf-8 -*-
# coding: utf-8
import re
from django.http import Http404, HttpResponseRedirect
from modoboa.admin.models import Extension
@@ -31,8 +30,7 @@ class CommonExceptionCatcher(object):
return None
if not request.is_ajax():
return _render_error(request, errortpl="error_simple",
user_context=dict(error=str(exception)))
return _render_error(request, user_context=dict(error=str(exception)))
return ajax_response(request, status="ko", respmsg=str(exception),
norefresh=True)
+2 -2
View File
@@ -61,11 +61,11 @@ def display_messages(msgs):
""" % (level, text, timeout)
@register.simple_tag
def extra_head_content():
def extra_head_content(user):
tpl = Template("{% for sc in static_content %}{{ sc|safe }}{% endfor %}")
return tpl.render(
Context(
dict(static_content=events.raiseQueryEvent("GetStaticContent"))
dict(static_content=events.raiseQueryEvent("GetStaticContent", user))
)
)
-4
View File
@@ -1,4 +0,0 @@
{% extends "layout_simple.html" %}
{% block content %}
<div class="error"><p>{{ error }}</p></div>
{% endblock %}
+1 -2
View File
@@ -1,6 +1,5 @@
{% extends "nlayout.html" %}
{% load i18n %}
{% block middletitle %}{% trans "Error" %}{% endblock %}
{% block content %}
<div class="error"><p>{{ error }}</p></div>
<div class="alert alert-error"><strong>{% trans "Error:" %}</strong> {{ error }}</div>
{% endblock %}
-4
View File
@@ -1,4 +0,0 @@
{% extends "nlayout.html" %}
{% block content %}
<div class="alert alert-error">{{ error }}</div>
{% endblock %}
+1 -1
View File
@@ -21,7 +21,7 @@
<script type="text/javascript">
set_media_url("{{ MEDIA_URL }}");
</script>
{% extra_head_content %}
{% extra_head_content user %}
{% block html_head %}{% endblock %}
</head>
+10
View File
@@ -2,6 +2,16 @@
{% load i18n uprefs_extras libextras %}
{% block html_head %}
<script type="text/javascript">
function forwardform_cb() {
$(".submit").one('click', function(e) {
simple_ajax_form_post(e, {
formid: "forwardform",
error_cb: forwardform_cb,
reload_on_success: false
});
});
}
$(document).ready(function() {
$("#update").click(function(evt) {
evt.preventDefault();
-23
View File
@@ -1,23 +0,0 @@
{% extends "layout_simple.html" %}
{% block html_head %}
<script src="{{ MEDIA_URL }}js/form.js" type="text/javascript"></script>
<script type="text/javascript">
window.addEvent("domready", function() {
var form = new Form();
});
</script>
{% endblock %}
{% block content %}
{% load i18n %}
<div class="title"><h1>{% trans "Define your forward" %}</h1></div>
{% if error %}<div class="error">{{ error }}</div>{% endif %}
{% url userprefs.views.setforward as action_url %}
<form action="{{ action_url }}" method="post" name="setfwform" id="setfwform">
{% include "common/genericform.html" %}
<div class="lastrow" align="center">
<input type="submit" class="button" name="submit" value="{% trans 'Update' %}" />
</div>
</form>
{% endblock %}
+9 -10
View File
@@ -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})
+16 -8
View File
@@ -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):