aboutsummaryrefslogtreecommitdiff
path: root/src/mailman_pgp
diff options
context:
space:
mode:
authorJ08nY2017-06-15 20:29:23 +0200
committerJ08nY2017-06-15 20:29:23 +0200
commitc649aa7e8102899e2018242f68860ae350af3905 (patch)
treec9ddd45c63ed7d9e0133ab677db03dcffb64ae03 /src/mailman_pgp
parent0b3398306483bd7f333c8196f68b56166274d408 (diff)
downloadmailman-pgp-c649aa7e8102899e2018242f68860ae350af3905.tar.gz
mailman-pgp-c649aa7e8102899e2018242f68860ae350af3905.tar.zst
mailman-pgp-c649aa7e8102899e2018242f68860ae350af3905.zip
Diffstat (limited to 'src/mailman_pgp')
-rw-r--r--src/mailman_pgp/config/__init__.py18
-rw-r--r--src/mailman_pgp/plugin.py11
2 files changed, 20 insertions, 9 deletions
diff --git a/src/mailman_pgp/config/__init__.py b/src/mailman_pgp/config/__init__.py
index a6f7004..515fb5e 100644
--- a/src/mailman_pgp/config/__init__.py
+++ b/src/mailman_pgp/config/__init__.py
@@ -2,7 +2,23 @@
from configparser import ConfigParser
+from mailman.config import config as mailman_config
+from mailman.utilities.modules import expand_path
from public.public import public
-config = ConfigParser()
+
+@public
+class Config(ConfigParser):
+
+ def __init__(self):
+ super().__init__()
+ self.keyrings = {}
+
+ def load(self, name):
+ self.read(expand_path(
+ dict(mailman_config.plugin_configs)[self.name].configuration))
+ self.name = name
+
+
+config = Config()
public(config=config)
diff --git a/src/mailman_pgp/plugin.py b/src/mailman_pgp/plugin.py
index e6eec4f..eceff75 100644
--- a/src/mailman_pgp/plugin.py
+++ b/src/mailman_pgp/plugin.py
@@ -1,10 +1,8 @@
"""A PGP plugin for GNU Mailman."""
-from mailman.app import events
-from mailman.config import config as mailman_config
from mailman.interfaces.listmanager import ListDeletedEvent
from mailman.interfaces.plugin import IPlugin
-from mailman.utilities.modules import expand_path
from public import public
+from zope.event import classhandler
from zope.interface import implementer
from mailman_pgp.config import config
@@ -18,11 +16,8 @@ from mailman_pgp.rest.root import RESTRoot
class PGPMailman:
def pre_hook(self):
"""See `IPlugin`."""
- config.read(
- expand_path(
- dict(mailman_config.plugin_configs)[self.name].configuration))
+ config.load(self.name)
config.db = Database()
- config.name = self.name
def post_hook(self):
"""See `IPlugin`."""
@@ -33,7 +28,7 @@ class PGPMailman:
return RESTRoot()
-@events.subscribe(ListDeletedEvent)
+@classhandler.handler(ListDeletedEvent)
def on_delete(mlist):
encrypted_list = config.db.session.query(EncryptedMailingList).filter_by(
list_id=mlist.list_id).first()