Move sieve script generation to the admin container

master
kaiyou 6 years ago
parent cfeaa189f9
commit 4d25083847

@ -6,7 +6,7 @@ import socket
import flask import flask
internal = flask.Blueprint('internal', __name__) internal = flask.Blueprint('internal', __name__, template_folder='templates')
@internal.app_errorhandler(RateLimitExceeded) @internal.app_errorhandler(RateLimitExceeded)
def rate_limit_handler(e): def rate_limit_handler(e):

@ -8,8 +8,6 @@ require "regex";
require "relational"; require "relational";
require "date"; require "date";
require "comparator-i;ascii-numeric"; require "comparator-i;ascii-numeric";
require "vnd.dovecot.extdata";
require "vnd.dovecot.execute";
require "spamtestplus"; require "spamtestplus";
require "editheader"; require "editheader";
require "index"; require "index";
@ -20,21 +18,23 @@ if header :index 2 :matches "Received" "from * by * for <*>; *"
addheader "Delivered-To" "<${3}>"; addheader "Delivered-To" "<${3}>";
} }
if allof (string :is "${extdata.spam_enabled}" "1", {% if user.spam_enabled %}
spamtest :percent :value "gt" :comparator "i;ascii-numeric" "${extdata.spam_threshold}") if spamtest :percent :value "gt" :comparator "i;ascii-numeric" "{{ user.spam_threshold }}"
{ {
setflag "\\seen"; setflag "\\seen";
fileinto :create "Junk"; fileinto :create "Junk";
stop; stop;
} }
{% endif %}
if exists "X-Virus" { if exists "X-Virus" {
discard; discard;
stop; stop;
} }
if allof (string :is "${extdata.reply_enabled}" "1", {% if user.reply_enabled %}
currentdate :value "le" "date" "${extdata.reply_enddate}") if currentdate :value "le" "date" "{{ user.reply_enddate }}"
{ {
vacation :days 1 :subject "${extdata.reply_subject}" "${extdata.reply_body}"; vacation :days 1 :subject "{{ user.reply_subject }}" "{{ user.reply_body }}";
} }
{% endif %}

@ -122,7 +122,7 @@ def dovecot_quota(ns, user_email):
def dovecot_sieve(script, user_email): def dovecot_sieve(script, user_email):
user = models.User.query.get(user_email) or flask.abort(404) user = models.User.query.get(user_email) or flask.abort(404)
if script == "default": if script == "default":
pass return flask.jsonify(flask.render_template("default.sieve"))
else: else:
flask.abort(404) flask.abort(404)

@ -139,9 +139,6 @@ plugin {
sieve = dict:proxy:/tmp/podop.socket:sieve sieve = dict:proxy:/tmp/podop.socket:sieve
sieve_plugins = sieve_imapsieve sieve_extprograms sieve_plugins = sieve_imapsieve sieve_extprograms
sieve_global_extensions = +spamtest +spamtestplus +vnd.dovecot.execute +editheader sieve_global_extensions = +spamtest +spamtestplus +vnd.dovecot.execute +editheader
sieve_before = /var/lib/dovecot/before.sieve
sieve_default = /var/lib/dovecot/default.sieve
sieve_after = /var/lib/dovecot/after.sieve
# Sieve execute # Sieve execute
sieve_execute_bin_dir = /var/lib/dovecot/bin sieve_execute_bin_dir = /var/lib/dovecot/bin

@ -1,3 +0,0 @@
#!/bin/sh
rspamc -h antispam:11334 -P mailu "learn_$1" /dev/stdin <&0
Loading…
Cancel
Save