fix: ticket #70: per user signature

fix: correctly escaping/unescaping parameters.
This commit is contained in:
tonio
2010-07-15 16:58:23 +02:00
parent ea9c9652d6
commit 65322de109
5 changed files with 34 additions and 10 deletions
+8 -4
View File
@@ -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]:
+2
View File
@@ -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)
+11 -2
View File
@@ -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
View File
@@ -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")
+9
View File
@@ -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;