Mark Sapiro pushed to branch master at GNU Mailman / Mailman Core
Commits: 69e94561 by Mark Sapiro at 2022-02-11T02:14:08+00:00 Always import owners/moderators with delivery enabled. - - - - - 8bbffb6b by Mark Sapiro at 2022-02-11T02:14:08+00:00 Merge branch 'import' into 'master' Always import owners/moderators with delivery enabled. See merge request mailman/mailman!960 - - - - - 3 changed files: - src/mailman/docs/NEWS.rst - src/mailman/utilities/importer.py - src/mailman/utilities/tests/test_import.py Changes: ===================================== src/mailman/docs/NEWS.rst ===================================== @@ -35,6 +35,8 @@ Bugs fixed can cause Mailman to crash trying to disable that plugin. (Closes #724) * Fix a bug where the ``PIDWatcher()`` iterates over internal dict while it can be updated during that time. (Closes #724) +* The ``mailman import21`` now always imports owners/moderators with + ``DeliveryStatus.enabled``. (Closes #977) REST ==== ===================================== src/mailman/utilities/importer.py ===================================== @@ -682,18 +682,23 @@ def _import_roster(mlist, config_dict, members, role, action=None): # if email in config_dict.get('passwords', {}): # user.password = config.password_context.encrypt( # config_dict['passwords'][email]) - # delivery_status - oldds = config_dict.get('delivery_status', {}).get(email, (0, 0))[0] - if oldds == 0: + # delivery_status - for members. owners/moderators are always enabled. + if role in (MemberRole.owner, MemberRole.moderator): member.preferences.delivery_status = DeliveryStatus.enabled - elif oldds == 1: - member.preferences.delivery_status = DeliveryStatus.unknown - elif oldds == 2: - member.preferences.delivery_status = DeliveryStatus.by_user - elif oldds == 3: - member.preferences.delivery_status = DeliveryStatus.by_moderator - elif oldds == 4: - member.preferences.delivery_status = DeliveryStatus.by_bounces + else: + oldds = config_dict.get( + 'delivery_status', {}).get(email, (0, 0))[0] + if oldds == 0: + member.preferences.delivery_status = DeliveryStatus.enabled + elif oldds == 1: + member.preferences.delivery_status = DeliveryStatus.unknown + elif oldds == 2: + member.preferences.delivery_status = DeliveryStatus.by_user + elif oldds == 3: + member.preferences.delivery_status = \ + DeliveryStatus.by_moderator + elif oldds == 4: + member.preferences.delivery_status = DeliveryStatus.by_bounces # Moderation. if prefs is not None: # We're adding a member. ===================================== src/mailman/utilities/tests/test_import.py ===================================== @@ -1130,6 +1130,21 @@ class TestRosterImport(unittest.TestCase): member = self._mlist.members.get_member('b...@example.com') self.assertEqual(member.user, user) + def test_owner_and_moderator_delivery_enabled(self): + # If an owner or moderator is a member with delivery disabled, the + # imported owner/moderator must have delivery enabled. + # Set anne and bob's delivery status disabled by user. + self._pckdict['delivery_status'] = { + 'a...@example.com': (2, 1612366744.399534), + 'b...@example.com': (2, 1612366744.399534)} + import_config_pck(self._mlist, self._pckdict) + self.assertEqual( + self._mlist.owners.get_member('a...@example.com').delivery_status, + DeliveryStatus.enabled) + self.assertEqual( + self._mlist.moderators.get_member('b...@example.com'). + delivery_status, DeliveryStatus.enabled) + def test_owner_and_moderator_not_lowercase(self): # In the v2.1 pickled dict, the owner and moderator lists are not # necessarily lowercased already. View it on GitLab: https://gitlab.com/mailman/mailman/-/compare/ede58f0209cbdc360a4a93584da4f165c3580531...8bbffb6b0bca6207b567ecf24cdf503516b46d39 -- View it on GitLab: https://gitlab.com/mailman/mailman/-/compare/ede58f0209cbdc360a4a93584da4f165c3580531...8bbffb6b0bca6207b567ecf24cdf503516b46d39 You're receiving this email because of your account on gitlab.com.
_______________________________________________ Mailman-checkins mailing list -- mailman-checkins@python.org To unsubscribe send an email to mailman-checkins-le...@python.org https://mail.python.org/mailman3/lists/mailman-checkins.python.org/ Member address: arch...@jab.org