mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-17 05:41:25 +02:00
fix: ticket #70: per user signature
fix: correctly escaping/unescaping parameters.
This commit is contained in:
@@ -99,11 +99,17 @@ def param(app, definition):
|
||||
result = """<div class='row'>
|
||||
<label>%s</label>""" % definition["name"]
|
||||
name = "%s.%s" % (app, definition["name"])
|
||||
value = definition.has_key("value") \
|
||||
and definition["value"] or definition["default"]
|
||||
|
||||
if definition["type"] in ["string", "int"]:
|
||||
value = definition.has_key("value") \
|
||||
and definition["value"] or definition["default"]
|
||||
result += """
|
||||
<input type='text' name='%s' id='%s' value='%s' />""" % (name, name, value)
|
||||
|
||||
if definition["type"] == "text":
|
||||
result += "<textarea name='%s' id='%s'>%s</textarea>" \
|
||||
% (name, name, value)
|
||||
|
||||
if definition["type"] in ["list", "list_yesno"]:
|
||||
result += """
|
||||
<select name='%s' id='%s'>""" % (name, name)
|
||||
@@ -113,8 +119,6 @@ def param(app, definition):
|
||||
else:
|
||||
if definition.has_key("values"):
|
||||
values = definition["values"]
|
||||
value = definition.has_key("value") \
|
||||
and definition["value"] or definition["default"]
|
||||
for v in values:
|
||||
selected = ""
|
||||
if value == v[0]:
|
||||
|
||||
@@ -38,6 +38,8 @@ def init():
|
||||
help=_("Folder where deleted messages go"))
|
||||
parameters.register_user("webmail", "SENT_FOLDER", type="string", deflt="Sent",
|
||||
help=_("Folder where copies of sent messages go"))
|
||||
parameters.register_user("webmail", "SIGNATURE", type="text", default="",
|
||||
help=_("User defined email signature"))
|
||||
|
||||
def destroy():
|
||||
events.unregister("UserMenuDisplay", menu)
|
||||
|
||||
@@ -198,9 +198,18 @@ def compact(request, name):
|
||||
mbc.compact(name)
|
||||
return folder(request, name, False)
|
||||
|
||||
def render_compose(request, form, posturl, bodyheader=None, body=None):
|
||||
def render_compose(request, form, posturl, bodyheader=None, body=None,
|
||||
insert_signature=False):
|
||||
menu = compose_menu("", __get_current_url(request),
|
||||
request.user.get_all_permissions())
|
||||
if insert_signature:
|
||||
if body == None:
|
||||
body = ""
|
||||
body += """
|
||||
---
|
||||
%s
|
||||
""" % parameters.get_user(request.user, "webmail", "SIGNATURE")
|
||||
|
||||
content = render_to_string("webmail/compose.html", {
|
||||
"form" : form, "bodyheader" : bodyheader, "body" : body,
|
||||
"posturl" : posturl
|
||||
@@ -267,7 +276,7 @@ def compose(request):
|
||||
|
||||
form = ComposeMailForm()
|
||||
form.fields["from_"].initial = request.user.username
|
||||
return render_compose(request, form, reverse(compose))
|
||||
return render_compose(request, form, reverse(compose), insert_signature=True)
|
||||
|
||||
@login_required
|
||||
@is_not_localadmin()
|
||||
|
||||
+4
-4
@@ -68,7 +68,7 @@ def save_admin(app, name, value):
|
||||
p = Parameter()
|
||||
p.name = fullname
|
||||
if p.value != value:
|
||||
p.value = value
|
||||
p.value = str(value).encode("string_escape")
|
||||
p.save()
|
||||
return True
|
||||
|
||||
@@ -82,7 +82,7 @@ def save_user(user, app, name, value):
|
||||
p.user = user
|
||||
p.name = fullname
|
||||
if p.value != value:
|
||||
p.value = value
|
||||
p.value = str(value).encode("string_escape")
|
||||
p.save()
|
||||
return True
|
||||
|
||||
@@ -92,7 +92,7 @@ def get_admin(app, name):
|
||||
p = Parameter.objects.get(name="%s.%s" % (app, name))
|
||||
except Parameter.DoesNotExist:
|
||||
return _params[app]["A"][name]["default"]
|
||||
return p.value
|
||||
return p.value.decode("string_escape")
|
||||
|
||||
def get_user(user, app, name):
|
||||
__is_defined(app, "U", name)
|
||||
@@ -100,4 +100,4 @@ def get_user(user, app, name):
|
||||
p = UserParameter.objects.get(user=user, name="%s.%s" % (app, name))
|
||||
except UserParameter.DoesNotExist:
|
||||
return _params[app]["U"][name]["default"]
|
||||
return p.value
|
||||
return p.value.decode("string_escape")
|
||||
|
||||
@@ -303,6 +303,15 @@ input:hover {
|
||||
background-color: #ffffcc;
|
||||
}
|
||||
|
||||
textarea {
|
||||
border: 1px solid #cccccc;
|
||||
background-color: #eee;
|
||||
width: 300px;
|
||||
height: 100px;
|
||||
font-size: 1.1em;
|
||||
font-family: arial, helvetica, verdana, tahoma, sans-serif;
|
||||
}
|
||||
|
||||
table.hr {
|
||||
width: 80%;
|
||||
margin: 10px auto;
|
||||
|
||||
Reference in New Issue
Block a user