From 88d755431aa30f74e0c870ae1caea209adaa8780 Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Tue, 17 Sep 2013 15:03:26 +0200 Subject: [PATCH] Compress attachments before the HTTP proxy does. fix #480 --- modoboa/extensions/webmail/views.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/modoboa/extensions/webmail/views.py b/modoboa/extensions/webmail/views.py index 06234f912..57eebb635 100644 --- a/modoboa/extensions/webmail/views.py +++ b/modoboa/extensions/webmail/views.py @@ -1,12 +1,14 @@ # coding: utf-8 -from django.conf import settings import os +from rfc6266 import build_header +from django.conf import settings from django.http import HttpResponse from django.template import Template, Context from django.utils.translation import ugettext as _, ungettext from django.core.urlresolvers import reverse from django.contrib.auth.decorators import login_required from django.views.decorators.csrf import csrf_exempt +from django.views.decorators.gzip import gzip_page from modoboa.lib import parameters from modoboa.lib.webutils import _render, _render_to_string, \ ajax_response, ajax_simple_response @@ -20,8 +22,10 @@ from lib import decode_payload, AttachmentUploadHandler, \ ImapEmail, ReplyModifier, ForwardModifier from templatetags import webextras + @login_required @needs_mailbox() +@gzip_page def getattachment(request): """Fetch a message attachment @@ -36,14 +40,11 @@ def getattachment(request): if not mbox or not mailid or not pnum: raise WebmailError(_("Invalid request")) - headers = {"Content-Type": "text/plain", - "Content-Transfer-Encoding": None} imapc = get_imapconnector(request) partdef, payload = imapc.fetchpart(mailid, mbox, pnum) resp = HttpResponse(decode_payload(partdef["encoding"], payload)) resp["Content-Type"] = partdef["Content-Type"] resp["Content-Transfer-Encoding"] = partdef["encoding"] - print partdef if partdef["disposition"] != 'NIL': disp = partdef["disposition"] # FIXME : ugly hack, see fetch_parser.py for more explanation @@ -58,6 +59,7 @@ def getattachment(request): resp["Content-Length"] = partdef["size"] return resp + @login_required @needs_mailbox() def move(request):