aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mailman_pgp/model/address.py14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/mailman_pgp/model/address.py b/src/mailman_pgp/model/address.py
index 1dc3840..6abe0c1 100644
--- a/src/mailman_pgp/model/address.py
+++ b/src/mailman_pgp/model/address.py
@@ -20,9 +20,11 @@
from os.path import exists, isfile, join
from mailman.database.types import SAUnicode
+from mailman.interfaces.usermanager import IUserManager
from pgpy import PGPKey
from sqlalchemy import Column, Integer
from sqlalchemy.orm import reconstructor
+from zope.component import getUtility
from mailman_pgp.config import config
from mailman_pgp.model.base import Base
@@ -37,13 +39,15 @@ class PGPAddress(Base):
email = Column(SAUnicode, index=True)
key_fingerprint = Column(SAUnicode)
- def __init__(self, email):
+ def __init__(self, address):
super().__init__()
- self.email = email
+ self.email = address.email
self._init()
+ self._address = address
@reconstructor
def _init(self):
+ self._address = None
self._key = None
@property
@@ -61,3 +65,9 @@ class PGPAddress(Base):
return None
return join(config.pgp.keydir_config['user_keydir'],
self.key_fingerprint + '.asc')
+
+ @property
+ def address(self):
+ if self._address is None:
+ self._address = getUtility(IUserManager).get_address(self.email)
+ return self._address