aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJ08nY2017-06-19 21:42:44 +0200
committerJ08nY2017-06-19 21:42:44 +0200
commitbb3929f368076e5a27779361fc1853290c7f42a9 (patch)
tree36bcf45e0888524e4a41c68bc1ac5e795a4333a8 /src
parent49529ac57fc775a6e96b5258a173af126ec291c9 (diff)
downloadmailman-pgp-bb3929f368076e5a27779361fc1853290c7f42a9.tar.gz
mailman-pgp-bb3929f368076e5a27779361fc1853290c7f42a9.tar.zst
mailman-pgp-bb3929f368076e5a27779361fc1853290c7f42a9.zip
Diffstat (limited to 'src')
-rw-r--r--src/mailman_pgp/database/__init__.py4
-rw-r--r--src/mailman_pgp/plugin.py6
2 files changed, 6 insertions, 4 deletions
diff --git a/src/mailman_pgp/database/__init__.py b/src/mailman_pgp/database/__init__.py
index 5ea8f94..e700ad9 100644
--- a/src/mailman_pgp/database/__init__.py
+++ b/src/mailman_pgp/database/__init__.py
@@ -31,9 +31,9 @@ class Database:
@contextmanager
def transaction():
try:
- yield
+ yield config.db.session
except:
- config.db.session.abort()
+ config.db.session.rollback()
raise
else:
config.db.session.commit()
diff --git a/src/mailman_pgp/plugin.py b/src/mailman_pgp/plugin.py
index 033c46d..3ef771c 100644
--- a/src/mailman_pgp/plugin.py
+++ b/src/mailman_pgp/plugin.py
@@ -1,4 +1,5 @@
"""A PGP plugin for GNU Mailman."""
+
from mailman.interfaces.listmanager import ListDeletedEvent
from mailman.interfaces.plugin import IPlugin
from public import public
@@ -35,5 +36,6 @@ def on_delete(mlist):
encrypted_list = config.db.session.query(EncryptedMailingList).filter_by(
list_id=mlist.list_id).first()
if encrypted_list:
- with transaction():
- config.db.session.delete(encrypted_list)
+ with transaction() as session:
+ # TODO shred the list key
+ session.delete(encrypted_list)