diff options
Diffstat (limited to 'src/mailman_pgp/model/list.py')
| -rw-r--r-- | src/mailman_pgp/model/list.py | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/mailman_pgp/model/list.py b/src/mailman_pgp/model/list.py index 13d4430..84cb3bc 100644 --- a/src/mailman_pgp/model/list.py +++ b/src/mailman_pgp/model/list.py @@ -20,6 +20,7 @@ from mailman.database.types import Enum, SAUnicode from mailman.interfaces.action import Action from mailman.interfaces.listmanager import IListManager, ListDeletingEvent from mailman.interfaces.member import MemberRole +from os import system from public import public from sqlalchemy import Boolean, Column, Integer from sqlalchemy.orm import reconstructor @@ -154,11 +155,17 @@ class PGPMailingList(Base): @classhandler.handler(ListDeletingEvent) def on_delete(event): shred = config.get_value('keypairs', 'shred') + shred_command = config.get_value('keypairs', 'shred_command') + delete = config.get_value('keypairs', 'delete') pgp_list = PGPMailingList.for_list(event.mailing_list) if pgp_list: with transaction() as session: - if shred: - pgp_list.fs_key.shred() - else: - pgp_list.fs_key.delete() + if delete: + if shred: + if shred_command: + system(shred_command + ' ' + pgp_list.key_path) + else: + pgp_list.fs_key.shred() + else: + pgp_list.fs_key.delete() session.delete(pgp_list) |
