1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
from django.core.exceptions import PermissionDenied
from django.shortcuts import get_object_or_404
from django.http import Http404, HttpResponse
from django.contrib.auth.decorators import login_required
from postgresqleu.util.backendviews import backend_list_editor
from postgresqleu.mailqueue.backendforms import BackendMailqueueForm
from postgresqleu.mailqueue.models import QueuedMail
from postgresqleu.mailqueue.util import parse_mail_content, recursive_parse_attachments_from_message
@login_required
def edit_mailqueue(request, rest):
if not request.user.is_superuser:
raise PermissionDenied("Access denied")
return backend_list_editor(request,
None,
BackendMailqueueForm,
rest,
bypass_conference_filter=True,
topadmin='Mailqueue',
return_url='/admin/',
allow_new=False,
allow_save=False,
)
@login_required
def view_attachment(request, queueid, attname):
if not request.user.is_superuser:
raise PermissionDenied("Access denied")
mail = get_object_or_404(QueuedMail, pk=queueid)
msg, body = parse_mail_content(mail.fullmsg)
for id, filename, contenttype, content in recursive_parse_attachments_from_message(msg):
if filename == attname:
return HttpResponse(bytes(content), content_type=contenttype)
raise Http404("Attachment not found")
|