diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/mailman_pgp/database/__init__.py | 4 | ||||
| -rw-r--r-- | src/mailman_pgp/plugin.py | 6 |
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) |
