aboutsummaryrefslogtreecommitdiff
path: root/src/mailman_pgp/model/list.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/mailman_pgp/model/list.py')
-rw-r--r--src/mailman_pgp/model/list.py15
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)