# Copyright (C) 2017 Jan Jancar # # This file is a part of the Mailman PGP plugin. # # This program is free software; you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free # Software Foundation, either version 3 of the License, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for # more details. # # You should have received a copy of the GNU General Public License along with # this program. If not, see . """""" from public import public from mailman_pgp.database import transaction from mailman_pgp.model.address import PGPAddress from mailman_pgp.model.list import PGPMailingList @public class PGPMixin: def __init__(self, mlist, pgp_address=None): self.mlist = mlist self.pgp_list = PGPMailingList.for_list(mlist) self.pgp_address = pgp_address @property def address_key(self): return self.pgp_address.email @address_key.setter def address_key(self, value): self.pgp_address = PGPAddress.for_email(value) self.member = self.mlist.regular_members.get_member(value) def _step_pgp_prepare(self): self.pgp_address = PGPAddress.for_address(self.address) if self.pgp_address is None: with transaction() as t: self.pgp_address = PGPAddress(self.address) t.add(self.pgp_address)