diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/mailman_pgp/model/address.py | 14 |
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 |
