mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-17 05:41:25 +02:00
File diff suppressed because one or more lines are too long
@@ -176,13 +176,16 @@ class PgWrapper(SQLWrapper):
|
||||
if not user.is_superuser:
|
||||
doms = user.get_domains()
|
||||
regexp = "(%s)" % '|'.join(map(lambda dom: dom.name, doms))
|
||||
return len(Msgrcpt.objects.filter(rq).extra(where=["convert_from(maddr.email, 'UTF8') ~ '%s'" % (regexp,)], tables=['maddr']))
|
||||
return len(Msgrcpt.objects.filter(rq).extra(
|
||||
where=["convert_from(maddr.email, 'UTF8') ~ '%s'" % (regexp,)],
|
||||
tables=['maddr']
|
||||
))
|
||||
return len(Msgrcpt.objects.filter(rq))
|
||||
|
||||
|
||||
def get_mail_content(self, mailid):
|
||||
return Quarantine.objects.filter(mail=mailid).extra(
|
||||
select={'mail_text' : "convert_from(mail_text, 'UTF8'"}
|
||||
select={'mail_text' : "convert_from(mail_text, 'UTF8')"}
|
||||
)
|
||||
|
||||
def get_wrapper():
|
||||
|
||||
@@ -163,7 +163,7 @@ def viewmail(request, mail_id):
|
||||
@login_required
|
||||
def viewheaders(request, mail_id):
|
||||
content = ""
|
||||
for qm in Quarantine.objects.filter(mail=mail_id):
|
||||
for qm in get_wrapper().get_mail_content(mail_id):
|
||||
content += qm.mail_text
|
||||
msg = email.message_from_string(content)
|
||||
return _render(request, 'amavis/viewheader.html', {
|
||||
@@ -196,7 +196,10 @@ def delete(request, mail_id):
|
||||
if request.user.group == 'SimpleUsers':
|
||||
mb = Mailbox.objects.get(user=request.user)
|
||||
msgrcpts = get_wrapper().get_recipient_messages(mb.full_address, mail_id)
|
||||
msgrcpts.update(rs='D')
|
||||
#msgrcpts.update(rs='D')
|
||||
for msgrcpt in msgrcpts:
|
||||
msgrcpt.rs = 'D'
|
||||
msgrcpt.save()
|
||||
else:
|
||||
wrapper = get_wrapper()
|
||||
for mid in mail_id:
|
||||
@@ -243,7 +246,14 @@ def release(request, mail_id):
|
||||
mb = Mailbox.objects.get(user=request.user)
|
||||
msgrcpts = get_wrapper().get_recipient_messages(mb.full_address, mail_id)
|
||||
if parameters.get_admin("USER_CAN_RELEASE") == "no":
|
||||
msgrcpts.update(rs='p')
|
||||
# FIXME : can't use this syntax because extra SQL (using
|
||||
# .extra() for postgres) is not propagated (the 'tables'
|
||||
# parameter is lost somewhere...)
|
||||
#
|
||||
# msgrcpts.update(rs='p')
|
||||
for msgrcpt in msgrcpts:
|
||||
msgrcpt.rs = 'p'
|
||||
msgrcpt.save()
|
||||
message = ungettext("%(count)d request sent",
|
||||
"%(count)d requests sent",
|
||||
len(mail_id)) % {"count" : len(mail_id)}
|
||||
|
||||
Reference in New Issue
Block a user