mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-17 05:41:25 +02:00
* 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:
@@ -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({
|
||||
|
||||
@@ -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'});
|
||||
|
||||
@@ -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
@@ -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)
|
||||
|
||||
@@ -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))
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
{% extends "layout_simple.html" %}
|
||||
{% block content %}
|
||||
<div class="error"><p>{{ error }}</p></div>
|
||||
{% endblock %}
|
||||
@@ -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 %}
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
{% extends "nlayout.html" %}
|
||||
{% block content %}
|
||||
<div class="alert alert-error">{{ error }}</div>
|
||||
{% endblock %}
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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 %}
|
||||
@@ -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
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user