aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
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)