diff options
-rwxr-xr-x | Mailman/Defaults.py.in | 8 | ||||
-rw-r--r-- | Mailman/Gui/General.py | 4 | ||||
-rw-r--r-- | Mailman/Handlers/CleanseDKIM.py | 4 | ||||
-rwxr-xr-x | Mailman/Handlers/CookHeaders.py | 12 | ||||
-rw-r--r-- | Mailman/Handlers/WrapMessage.py | 2 | ||||
-rwxr-xr-x | Mailman/MailList.py | 2 | ||||
-rw-r--r-- | Mailman/Version.py | 2 | ||||
-rwxr-xr-x | Mailman/versions.py | 5 | ||||
-rwxr-xr-x | NEWS | 8 | ||||
-rw-r--r-- | contrib/import_majordomo_into_mailman.pl | 2 | ||||
-rw-r--r-- | contrib/majordomo2mailman.pl | 2 |
11 files changed, 26 insertions, 25 deletions
diff --git a/Mailman/Defaults.py.in b/Mailman/Defaults.py.in index 305be5cb..bb70f497 100755 --- a/Mailman/Defaults.py.in +++ b/Mailman/Defaults.py.in @@ -109,8 +109,8 @@ ALLOW_SITE_ADMIN_COOKIES = No AUTHENTICATION_COOKIE_LIFETIME = 0 # The following must be set to Yes to enable the 'author is list' feature. -# See DEFAULT_AUTHOR_IS_LIST below. -ALLOW_AUTHOR_IS_LIST = No +# See DEFAULT_FROM_IS_LIST below. +ALLOW_FROM_IS_LIST = No # Form lifetime is set against Cross Site Request Forgery. FORM_LIFETIME = hours(1) @@ -561,7 +561,7 @@ NNTP_REWRITE_DUPLICATE_HEADERS = [ # broken and even if the outgoing message is resigned. However, some sites # may wish to remove these headers. Possible values and meanings are: # No, 0, False -> do not remove headers. -# 1 -> remove headers only if the list's author_is_list setting is 1. +# 1 -> remove headers only if the list's from_is_list setting is 1. # Yes, 2, True -> always remove headers. REMOVE_DKIM_HEADERS = No @@ -1086,7 +1086,7 @@ DEFAULT_SEND_GOODBYE_MSG = Yes # that of the list. Also see REMOVE_DKIM_HEADERS above. # 2 -> Do not modify the From: of the message, but wrap the message in an outer # message From the list address. -DEFAULT_AUTHOR_IS_LIST = 0 +DEFAULT_FROM_IS_LIST = 0 # Wipe sender information, and make it look like the list-admin # address sends all messages diff --git a/Mailman/Gui/General.py b/Mailman/Gui/General.py index c1c27ff9..24bc009a 100644 --- a/Mailman/Gui/General.py +++ b/Mailman/Gui/General.py @@ -155,9 +155,9 @@ class General(GUIBase): """)), ] - if mm_cfg.ALLOW_AUTHOR_IS_LIST: + if mm_cfg.ALLOW_FROM_IS_LIST: rtn.append( - ('author_is_list', mm_cfg.Radio, + ('from_is_list', mm_cfg.Radio, (_('No'), _('Mung From'), _('Wrap Message')), 0, _("""Replace the sender with the list address to conform with policies like ADSP and DMARC. It replaces the poster's diff --git a/Mailman/Handlers/CleanseDKIM.py b/Mailman/Handlers/CleanseDKIM.py index 809bae9b..0df2d97f 100644 --- a/Mailman/Handlers/CleanseDKIM.py +++ b/Mailman/Handlers/CleanseDKIM.py @@ -31,9 +31,9 @@ from Mailman import mm_cfg def process(mlist, msg, msgdata): if not mm_cfg.REMOVE_DKIM_HEADERS: return - if (mm_cfg.ALLOW_AUTHOR_IS_LIST and + if (mm_cfg.ALLOW_FROM_IS_LIST and mm_cfg.REMOVE_DKIM_HEADERS == 1 and - mlist.author_is_list != 1): + mlist.from_is_list != 1): return del msg['domainkey-signature'] del msg['dkim-signature'] diff --git a/Mailman/Handlers/CookHeaders.py b/Mailman/Handlers/CookHeaders.py index 96862851..150b4922 100755 --- a/Mailman/Handlers/CookHeaders.py +++ b/Mailman/Handlers/CookHeaders.py @@ -65,7 +65,7 @@ def uheader(mlist, s, header_name=None, continuation_ws='\t', maxlinelen=None): return Header(s, charset, maxlinelen, header_name, continuation_ws) def change_header(name, value, mlist, msg, msgdata, delete=True, repl=True): - if mm_cfg.ALLOW_AUTHOR_IS_LIST and mlist.author_is_list == 2: + if mm_cfg.ALLOW_FROM_IS_LIST and mlist.from_is_list == 2: msgdata.setdefault('add_header', {})[name] = value elif repl or not msg.has_key(name): if delete: @@ -116,7 +116,7 @@ def process(mlist, msg, msgdata): change_header('Precedence', 'list', mlist, msg, msgdata, repl=False) # Do we change the from so the list takes ownership of the email - if mm_cfg.ALLOW_AUTHOR_IS_LIST and mlist.author_is_list: + if mm_cfg.ALLOW_FROM_IS_LIST and mlist.from_is_list: realname, email = parseaddr(msg['from']) replies = getaddresses(msg.get('reply-to', '')) reply_addrs = [x[1].lower() for x in replies] @@ -132,7 +132,7 @@ def process(mlist, msg, msgdata): formataddr(('%s via %s' % (realname, mlist.real_name), mlist.GetListEmail())), mlist, msg, msgdata) - if mlist.author_is_list != 2: + if mlist.from_is_list != 2: del msg['sender'] #MAS ?? mlist.include_sender_header = 0 # Reply-To: munging. Do not do this if the message is "fast tracked", @@ -190,8 +190,8 @@ def process(mlist, msg, msgdata): # is already in From and Reply-To in this case and similarly for # an 'author is list' list. if mlist.personalize == 2 and mlist.reply_goes_to_list <> 1 \ - and not mlist.anonymous_list and not (mlist.author_is_list and - mm_cfg.ALLOW_AUTHOR_IS_LIST): + and not mlist.anonymous_list and not (mlist.from_is_list and + mm_cfg.ALLOW_FROM_IS_LIST): # Watch out for existing Cc headers, merge, and remove dups. Note # that RFC 2822 says only zero or one Cc header is allowed. new = [] @@ -202,7 +202,7 @@ def process(mlist, msg, msgdata): add((str(i18ndesc), mlist.GetListEmail())) # We don't worry about what AvoidDuplicates may have done with a # Cc: header or using change_header here since we never get here - # if author_is_list is allowed and True. + # if from_is_list is allowed and True. del msg['Cc'] msg['Cc'] = COMMASPACE.join([formataddr(pair) for pair in new]) # Add list-specific headers as defined in RFC 2369 and RFC 2919, but only diff --git a/Mailman/Handlers/WrapMessage.py b/Mailman/Handlers/WrapMessage.py index 350a8a81..68c89ff2 100644 --- a/Mailman/Handlers/WrapMessage.py +++ b/Mailman/Handlers/WrapMessage.py @@ -35,7 +35,7 @@ KEEPERS = ('to', def process(mlist, msg, msgdata): - if not mm_cfg.ALLOW_AUTHOR_IS_LIST or mlist.author_is_list != 2: + if not mm_cfg.ALLOW_FROM_IS_LIST or mlist.from_is_list != 2: return # There are various headers in msg that we don't want, so we basically diff --git a/Mailman/MailList.py b/Mailman/MailList.py index afb1ce15..cdebb507 100755 --- a/Mailman/MailList.py +++ b/Mailman/MailList.py @@ -347,7 +347,7 @@ class MailList(HTMLFormatter, Deliverer, ListAdmin, self.bounce_matching_headers = \ mm_cfg.DEFAULT_BOUNCE_MATCHING_HEADERS self.header_filter_rules = [] - self.author_is_list = mm_cfg.DEFAULT_AUTHOR_IS_LIST + self.from_is_list = mm_cfg.DEFAULT_FROM_IS_LIST self.anonymous_list = mm_cfg.DEFAULT_ANONYMOUS_LIST internalname = self.internal_name() self.real_name = internalname[0].upper() + internalname[1:] diff --git a/Mailman/Version.py b/Mailman/Version.py index 1c0d2de8..8ed7fa31 100644 --- a/Mailman/Version.py +++ b/Mailman/Version.py @@ -37,7 +37,7 @@ HEX_VERSION = ((MAJOR_REV << 24) | (MINOR_REV << 16) | (MICRO_REV << 8) | (REL_LEVEL << 4) | (REL_SERIAL << 0)) # config.pck schema version number -DATA_FILE_VERSION = 101 +DATA_FILE_VERSION = 102 # qfile/*.db schema version number QFILE_SCHEMA_VERSION = 3 diff --git a/Mailman/versions.py b/Mailman/versions.py index e731d33c..31c4f470 100755 --- a/Mailman/versions.py +++ b/Mailman/versions.py @@ -313,6 +313,9 @@ def UpdateOldVars(l, stored_state): pass else: l.digest_members[k] = 0 + # from_is_list was called author_is_list in 2.1.16rc2 (only). + PreferStored('author_is_list', 'from_is_list', + mm_cfg.DEFAULT_FROM_IS_LIST) @@ -418,8 +421,6 @@ def NewVars(l): mm_cfg.DEFAULT_REGULAR_INCLUDE_LISTS) add_only_if_missing('regular_exclude_ignore', mm_cfg.DEFAULT_REGULAR_EXCLUDE_IGNORE) - add_only_if_missing('author_is_list', - mm_cfg.DEFAULT_AUTHOR_IS_LIST) @@ -9,14 +9,14 @@ Here is a history of user visible changes to Mailman. New Features - - There is a new list attribute author_is_list to either rewrite the From: + - There is a new list attribute from_is_list to either rewrite the From: header of posts replacing the posters address with that of the list or wrap the message in an outer message From: the list for compatability with DMARC and or ADSP. There is a new mm_cfg.py setting - DEFAULT_AUTHOR_IS_LIST to control the default for new lists, and the + DEFAULT_FROM_IS_LIST to control the default for new lists, and the existing REMOVE_DKIM_HEADERS setting has been extended to allow removing - those headers only for certain author_is_list lists. This feature must - be enabled by setting ALLOW_AUTHOR_IS_LIST to Yes in mm_cfg.py. See the + those headers only for certain from_is_list lists. This feature must + be enabled by setting ALLOW_FROM_IS_LIST to Yes in mm_cfg.py. See the description of these settings in Defaults.py for more detail. This feature is experimental in 2.1.16, and it is subject to change or to become just one of the two methods in a subsequent release. People diff --git a/contrib/import_majordomo_into_mailman.pl b/contrib/import_majordomo_into_mailman.pl index e157ce24..9df75f2f 100644 --- a/contrib/import_majordomo_into_mailman.pl +++ b/contrib/import_majordomo_into_mailman.pl @@ -909,7 +909,7 @@ sub getMailmanConfig { 'administrivia' => 'True', 'advertised' => 1, 'anonymous_list' => 'False', - 'author_is_list' => 'False', + 'from_is_list' => 'False', # NOTE: some may wish to map some Majordomo setting, such as index_access # to Mailman's archive. As is, all archiving is turned off for imported # lists. diff --git a/contrib/majordomo2mailman.pl b/contrib/majordomo2mailman.pl index 3e54a3ac..770dc575 100644 --- a/contrib/majordomo2mailman.pl +++ b/contrib/majordomo2mailman.pl @@ -480,7 +480,7 @@ sub init_defaultmmconf { 'max_num_recipients', "10", 'forbidden_posters', "[]", 'bounce_matching_headers', "\"\"\"\n\"\"\"\n", - 'author_is_list', "0", + 'from_is_list', "0", 'anonymous_list', "0", 'nondigestable', "1", 'digestable', "1", |