aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJ08nY2017-06-22 15:49:20 +0200
committerJ08nY2017-06-22 15:49:20 +0200
commit50df74e60b5f67b18470133efd68629d7667d0b0 (patch)
tree54977e38717dd28573c402f66d23068224e9f073 /src
parent6f513b5b8dd6229b4ebc84911c1cd0d42f1701e2 (diff)
downloadmailman-pgp-50df74e60b5f67b18470133efd68629d7667d0b0.tar.gz
mailman-pgp-50df74e60b5f67b18470133efd68629d7667d0b0.tar.zst
mailman-pgp-50df74e60b5f67b18470133efd68629d7667d0b0.zip
Diffstat (limited to 'src')
-rw-r--r--src/mailman_pgp/chains/default.py8
-rw-r--r--src/mailman_pgp/model/address.py4
-rw-r--r--src/mailman_pgp/model/base.py17
-rw-r--r--src/mailman_pgp/model/list.py4
-rw-r--r--src/mailman_pgp/plugin.py8
-rw-r--r--src/mailman_pgp/rest/lists.py6
-rw-r--r--src/mailman_pgp/rules/signature.py9
-rw-r--r--src/mailman_pgp/runners/incoming.py4
-rw-r--r--src/mailman_pgp/runners/outgoing.py4
-rw-r--r--src/mailman_pgp/styles/base.py8
10 files changed, 42 insertions, 30 deletions
diff --git a/src/mailman_pgp/chains/default.py b/src/mailman_pgp/chains/default.py
index 27ee190..e55e0d3 100644
--- a/src/mailman_pgp/chains/default.py
+++ b/src/mailman_pgp/chains/default.py
@@ -25,11 +25,11 @@ from zope.interface import implementer
@public
@implementer(IChain)
-class EncryptedChain:
- """Default encrypted chain."""
+class PGPChain:
+ """Default PGP chain."""
- name = 'encrypted-posting-chain'
- description = _('The encrypted moderation chain.')
+ name = 'pgp-posting-chain'
+ description = _('The PGP enabled moderation chain.')
_link_descriptions = (
('signature', LinkAction.jump, 'moderation'),
diff --git a/src/mailman_pgp/model/address.py b/src/mailman_pgp/model/address.py
index 3ef95b4..60c6e2f 100644
--- a/src/mailman_pgp/model/address.py
+++ b/src/mailman_pgp/model/address.py
@@ -28,8 +28,8 @@ from mailman_pgp.config import config
from mailman_pgp.model.base import Base
-class EncryptedAddress(Base):
- __tablename__ = 'encrypted_addresses'
+class PGPAddress(Base):
+ __tablename__ = 'pgp_addresses'
id = Column(Integer, primary_key=True)
email = Column(SAUnicode, index=True)
diff --git a/src/mailman_pgp/model/base.py b/src/mailman_pgp/model/base.py
index 0a87a53..2ccc7e5 100644
--- a/src/mailman_pgp/model/base.py
+++ b/src/mailman_pgp/model/base.py
@@ -18,11 +18,18 @@
""""""
from public import public
-from sqlalchemy.ext.declarative import declarative_base
+from sqlalchemy.ext.declarative import as_declarative
+from mailman_pgp.database import query
-Base = declarative_base()
-public(Base=Base)
-from mailman_pgp.model.address import EncryptedAddress # noqa
-from mailman_pgp.model.list import EncryptedMailingList # noqa
+@public
+@as_declarative()
+class Base:
+
+ def query(self):
+ return query(self.__class__)
+
+
+from mailman_pgp.model.address import PGPAddress # noqa
+from mailman_pgp.model.list import PGPMailingList # noqa
diff --git a/src/mailman_pgp/model/list.py b/src/mailman_pgp/model/list.py
index 4a25f0a..84dd1a8 100644
--- a/src/mailman_pgp/model/list.py
+++ b/src/mailman_pgp/model/list.py
@@ -34,8 +34,8 @@ from mailman_pgp.pgp.keygen import ListKeyGenerator
@public
-class EncryptedMailingList(Base):
- __tablename__ = 'encrypted_lists'
+class PGPMailingList(Base):
+ __tablename__ = 'pgp_lists'
id = Column(Integer, primary_key=True)
list_id = Column(SAUnicode, index=True)
diff --git a/src/mailman_pgp/plugin.py b/src/mailman_pgp/plugin.py
index 37b4304..95006f8 100644
--- a/src/mailman_pgp/plugin.py
+++ b/src/mailman_pgp/plugin.py
@@ -24,8 +24,8 @@ from zope.event import classhandler
from zope.interface import implementer
from mailman_pgp.config import config
-from mailman_pgp.database import Database, transaction
-from mailman_pgp.model.list import EncryptedMailingList
+from mailman_pgp.database import Database, query, transaction
+from mailman_pgp.model.list import PGPMailingList
from mailman_pgp.pgp import PGP
from mailman_pgp.rest.root import RESTRoot
@@ -33,6 +33,8 @@ from mailman_pgp.rest.root import RESTRoot
@public
@implementer(IPlugin)
class PGPMailman:
+ """PGP plugin for Mailman!"""
+
def pre_hook(self):
"""See `IPlugin`."""
config.load(self.name)
@@ -50,7 +52,7 @@ class PGPMailman:
@classhandler.handler(ListDeletedEvent)
def on_delete(mlist):
- encrypted_list = config.db.session.query(EncryptedMailingList).filter_by(
+ encrypted_list = query(PGPMailingList).filter_by(
list_id=mlist.list_id).first()
if encrypted_list:
with transaction() as session:
diff --git a/src/mailman_pgp/rest/lists.py b/src/mailman_pgp/rest/lists.py
index 29d510d..0853a35 100644
--- a/src/mailman_pgp/rest/lists.py
+++ b/src/mailman_pgp/rest/lists.py
@@ -23,7 +23,7 @@ from public import public
from mailman_pgp.config import config
from mailman_pgp.database import query
-from mailman_pgp.model.list import EncryptedMailingList
+from mailman_pgp.model.list import PGPMailingList
class _EncryptedBase(CollectionMixin):
@@ -44,7 +44,7 @@ class _EncryptedBase(CollectionMixin):
def _get_collection(self, request):
"""See `CollectionMixin`."""
- return query(EncryptedMailingList).all()
+ return query(PGPMailingList).all()
@public
@@ -58,7 +58,7 @@ class AllEncryptedLists(_EncryptedBase):
@public
class AnEncryptedList(_EncryptedBase):
def __init__(self, list_id):
- self._mlist = query(EncryptedMailingList).filter_by(
+ self._mlist = query(PGPMailingList).filter_by(
list_id=list_id).first()
def on_get(self, request, response):
diff --git a/src/mailman_pgp/rules/signature.py b/src/mailman_pgp/rules/signature.py
index 28d05e4..27544a2 100644
--- a/src/mailman_pgp/rules/signature.py
+++ b/src/mailman_pgp/rules/signature.py
@@ -19,11 +19,14 @@
from mailman.core.i18n import _
from mailman.interfaces.rules import IRule
+from mailman.interfaces.usermanager import IUserManager
from public import public
+from zope.component import getUtility
from zope.interface import implementer
from mailman_pgp.database import query
-from mailman_pgp.model.list import EncryptedMailingList
+from mailman_pgp.model.address import PGPAddress
+from mailman_pgp.model.list import PGPMailingList
from mailman_pgp.pgp.wrapper import PGPWrapper
@@ -47,10 +50,10 @@ class Signature:
def check(self, mlist, msg, msgdata):
"""See `IRule`."""
- enc_list = query(EncryptedMailingList).filter_by(
+ enc_list = query(PGPMailingList).filter_by(
list_id=mlist.list_id).first()
if enc_list is None:
- raise ValueError('Encrypted mailing list not found.')
+ raise ValueError('PGP enabled mailing list not found.')
wrapped = PGPWrapper(msg)
if not wrapped.is_signed():
diff --git a/src/mailman_pgp/runners/incoming.py b/src/mailman_pgp/runners/incoming.py
index 1dbf8c9..1c602b1 100644
--- a/src/mailman_pgp/runners/incoming.py
+++ b/src/mailman_pgp/runners/incoming.py
@@ -25,7 +25,7 @@ from public import public
from mailman_pgp.config import config
from mailman_pgp.database import query
-from mailman_pgp.model.list import EncryptedMailingList
+from mailman_pgp.model.list import PGPMailingList
from mailman_pgp.pgp.wrapper import PGPWrapper
@@ -35,7 +35,7 @@ class IncomingRunner(Runner):
"""See `IRunner`."""
# Is the message for an encrypted mailing list? If not, pass to default
# incoming runner. If yes, go on.
- encrypted_list = query(EncryptedMailingList).filter_by(
+ encrypted_list = query(PGPMailingList).filter_by(
list_id=mlist.list_id).first()
if not encrypted_list:
inq = config.get('queues', 'in')
diff --git a/src/mailman_pgp/runners/outgoing.py b/src/mailman_pgp/runners/outgoing.py
index e566769..0fc9378 100644
--- a/src/mailman_pgp/runners/outgoing.py
+++ b/src/mailman_pgp/runners/outgoing.py
@@ -25,14 +25,14 @@ from public import public
from mailman_pgp.config import config
from mailman_pgp.database import query
-from mailman_pgp.model.list import EncryptedMailingList
+from mailman_pgp.model.list import PGPMailingList
@public
class OutgoingRunner(Runner):
def _dispose(self, mlist: MailingList, msg: Message, msgdata: dict):
"""See `IRunner`."""
- encrypted_list = query(EncryptedMailingList).filter_by(
+ encrypted_list = query(PGPMailingList).filter_by(
list_id=mlist.list_id).first()
if not encrypted_list:
outq = config.get('queues', 'out')
diff --git a/src/mailman_pgp/styles/base.py b/src/mailman_pgp/styles/base.py
index e78ce97..c0f70f4 100644
--- a/src/mailman_pgp/styles/base.py
+++ b/src/mailman_pgp/styles/base.py
@@ -21,7 +21,7 @@ from public import public
from mailman_pgp.config import config
from mailman_pgp.database import query, transaction
-from mailman_pgp.model.list import EncryptedMailingList
+from mailman_pgp.model.list import PGPMailingList
@public
@@ -30,12 +30,12 @@ class EncryptedStyle:
"""Creates the encrypted mailing list instance for the list it's
applied to.
"""
- enc_list = query(EncryptedMailingList).filter_by(
+ enc_list = query(PGPMailingList).filter_by(
list_id=mailing_list.list_id).first()
if enc_list:
return
- enc_list = EncryptedMailingList(mailing_list)
+ enc_list = PGPMailingList(mailing_list)
with transaction():
config.db.session.add(enc_list)
- mailing_list.posting_chain = 'encrypted-posting-chain'
+ mailing_list.posting_chain = 'pgp-posting-chain'