Ejemplo n.º 1
0
def prepare_subscription(config: configuration.NamespaceConfig, acc: Account) -> None:
    """High level function to store potential EFF newsletter subscriptions.

    The user may be asked if they want to sign up for the newsletter if
    they have not given their explicit approval or refusal using --eff-mail
    or --no-eff-mail flag.

    Decision about EFF subscription will be stored in the account metadata.

    :param configuration.NamespaceConfig config: Client configuration.
    :param Account acc: Current client account.

    """
    if config.eff_email is False:
        return
    if config.eff_email is True:
        if config.email is None:
            _report_failure("you didn't provide an e-mail address")
        else:
            acc.meta = acc.meta.update(register_to_eff=config.email)
    elif config.email and _want_subscription():
        acc.meta = acc.meta.update(register_to_eff=config.email)

    if acc.meta.register_to_eff:
        storage = AccountFileStorage(config)
        storage.update_meta(acc)
Ejemplo n.º 2
0
    def setUp(self):
        from certbot._internal.account import Account
        self.regr = mock.MagicMock()
        self.meta = Account.Meta(creation_host="test.certbot.org",
                                 creation_dt=datetime.datetime(
                                     2015, 7, 4, 14, 4, 10, tzinfo=pytz.UTC))
        self.acc = Account(self.regr, KEY, self.meta)
        self.regr.__repr__ = mock.MagicMock(return_value="i_am_a_regr")

        with mock.patch("certbot._internal.account.socket") as mock_socket:
            mock_socket.getfqdn.return_value = "test.certbot.org"
            with mock.patch("certbot._internal.account.datetime") as mock_dt:
                mock_dt.datetime.now.return_value = self.meta.creation_dt
                self.acc_no_meta = Account(self.regr, KEY)
Ejemplo n.º 3
0
    def setUp(self):
        super(AccountFileStorageTest, self).setUp()

        from certbot._internal.account import AccountFileStorage
        self.storage = AccountFileStorage(self.config)

        from certbot._internal.account import Account
        new_authzr_uri = "hi"
        self.acc = Account(regr=messages.RegistrationResource(
            uri=None,
            body=messages.Registration(),
            new_authzr_uri=new_authzr_uri),
                           key=KEY)
        self.mock_client = mock.MagicMock()
        self.mock_client.directory.new_authz = new_authzr_uri
Ejemplo n.º 4
0
    def setUp(self):
        super().setUp()

        from certbot._internal.account import AccountFileStorage
        self.storage = AccountFileStorage(self.config)

        from certbot._internal.account import Account
        new_authzr_uri = "hi"
        meta = Account.Meta(creation_host="test.example.org",
                            creation_dt=datetime.datetime(2021,
                                                          1,
                                                          5,
                                                          14,
                                                          4,
                                                          10,
                                                          tzinfo=pytz.UTC))
        self.acc = Account(regr=messages.RegistrationResource(
            uri=None,
            body=messages.Registration(),
            new_authzr_uri=new_authzr_uri),
                           key=KEY,
                           meta=meta)
        self.mock_client = mock.MagicMock()
        self.mock_client.directory.new_authz = new_authzr_uri
Ejemplo n.º 5
0
def handle_subscription(config: configuration.NamespaceConfig, acc: Account) -> None:
    """High level function to take care of EFF newsletter subscriptions.

    Once subscription is handled, it will not be handled again.

    :param configuration.NamespaceConfig config: Client configuration.
    :param Account acc: Current client account.

    """
    if config.dry_run:
        return
    if acc.meta.register_to_eff:
        subscribe(acc.meta.register_to_eff)

        acc.meta = acc.meta.update(register_to_eff=None)
        storage = AccountFileStorage(config)
        storage.update_meta(acc)