summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mailman/Archiver/Archiver.py2
-rw-r--r--src/mailman/Archiver/HyperArch.py2
-rw-r--r--src/mailman/Archiver/HyperDatabase.py2
-rw-r--r--src/mailman/Archiver/__init__.py2
-rw-r--r--src/mailman/__init__.py2
-rw-r--r--src/mailman/app/bounces.py2
-rw-r--r--src/mailman/app/commands.py2
-rw-r--r--src/mailman/app/domain.py2
-rw-r--r--src/mailman/app/events.py2
-rw-r--r--src/mailman/app/finder.py2
-rw-r--r--src/mailman/app/inject.py2
-rw-r--r--src/mailman/app/lifecycle.py2
-rw-r--r--src/mailman/app/membership.py10
-rw-r--r--src/mailman/app/moderator.py2
-rw-r--r--src/mailman/app/notifications.py2
-rw-r--r--src/mailman/app/registrar.py2
-rw-r--r--src/mailman/app/replybot.py2
-rw-r--r--src/mailman/app/subscriptions.py6
-rw-r--r--src/mailman/app/tests/test_bounces.py2
-rw-r--r--src/mailman/app/tests/test_inject.py2
-rw-r--r--src/mailman/app/tests/test_membership.py2
-rw-r--r--src/mailman/app/tests/test_moderation.py2
-rw-r--r--src/mailman/app/tests/test_subscriptions.py2
-rw-r--r--src/mailman/archiving/mailarchive.py2
-rw-r--r--src/mailman/archiving/mhonarc.py2
-rw-r--r--src/mailman/archiving/pipermail.py2
-rw-r--r--src/mailman/archiving/prototype.py2
-rw-r--r--src/mailman/bin/arch.py2
-rw-r--r--src/mailman/bin/bumpdigests.py2
-rw-r--r--src/mailman/bin/check_perms.py2
-rw-r--r--src/mailman/bin/checkdbs.py2
-rw-r--r--src/mailman/bin/cleanarch.py2
-rw-r--r--src/mailman/bin/config_list.py2
-rw-r--r--src/mailman/bin/disabled.py2
-rw-r--r--src/mailman/bin/export.py2
-rw-r--r--src/mailman/bin/find_member.py2
-rw-r--r--src/mailman/bin/gate_news.py2
-rw-r--r--src/mailman/bin/list_owners.py2
-rw-r--r--src/mailman/bin/mailman.py2
-rw-r--r--src/mailman/bin/master.py2
-rw-r--r--src/mailman/bin/nightly_gzip.py2
-rw-r--r--src/mailman/bin/onebounce.py2
-rw-r--r--src/mailman/bin/runner.py2
-rw-r--r--src/mailman/bin/senddigests.py2
-rw-r--r--src/mailman/bin/set_members.py2
-rw-r--r--src/mailman/bin/show_config.py2
-rw-r--r--src/mailman/bin/show_qfiles.py2
-rw-r--r--src/mailman/bin/tests/test_master.py2
-rw-r--r--src/mailman/bin/update.py2
-rw-r--r--src/mailman/chains/accept.py2
-rw-r--r--src/mailman/chains/base.py2
-rw-r--r--src/mailman/chains/builtin.py2
-rw-r--r--src/mailman/chains/discard.py2
-rw-r--r--src/mailman/chains/headers.py2
-rw-r--r--src/mailman/chains/hold.py2
-rw-r--r--src/mailman/chains/moderation.py2
-rw-r--r--src/mailman/chains/reject.py2
-rw-r--r--src/mailman/chains/tests/test_hold.py2
-rw-r--r--src/mailman/commands/cli_aliases.py2
-rw-r--r--src/mailman/commands/cli_control.py2
-rw-r--r--src/mailman/commands/cli_help.py2
-rw-r--r--src/mailman/commands/cli_import.py2
-rw-r--r--src/mailman/commands/cli_info.py2
-rw-r--r--src/mailman/commands/cli_inject.py2
-rw-r--r--src/mailman/commands/cli_lists.py2
-rw-r--r--src/mailman/commands/cli_members.py6
-rw-r--r--src/mailman/commands/cli_qfile.py2
-rw-r--r--src/mailman/commands/cli_status.py2
-rw-r--r--src/mailman/commands/cli_unshunt.py2
-rw-r--r--src/mailman/commands/cli_version.py2
-rw-r--r--src/mailman/commands/cli_withlist.py10
-rw-r--r--src/mailman/commands/eml_confirm.py2
-rw-r--r--src/mailman/commands/eml_echo.py2
-rw-r--r--src/mailman/commands/eml_end.py2
-rw-r--r--src/mailman/commands/eml_membership.py2
-rw-r--r--src/mailman/commands/tests/test_control.py2
-rw-r--r--src/mailman/commands/tests/test_create.py2
-rw-r--r--src/mailman/config/__init__.py2
-rw-r--r--src/mailman/config/config.py2
-rw-r--r--src/mailman/config/mailman.cfg2
-rw-r--r--src/mailman/config/schema.cfg14
-rw-r--r--src/mailman/core/chains.py2
-rw-r--r--src/mailman/core/constants.py2
-rw-r--r--src/mailman/core/errors.py2
-rw-r--r--src/mailman/core/i18n.py2
-rw-r--r--src/mailman/core/initialize.py2
-rw-r--r--src/mailman/core/logging.py2
-rw-r--r--src/mailman/core/pipelines.py2
-rw-r--r--src/mailman/core/rules.py2
-rw-r--r--src/mailman/core/runner.py2
-rw-r--r--src/mailman/core/switchboard.py2
-rw-r--r--src/mailman/core/system.py2
-rw-r--r--src/mailman/database/base.py2
-rw-r--r--src/mailman/database/model.py2
-rw-r--r--src/mailman/database/postgresql.py2
-rw-r--r--src/mailman/database/sqlite.py2
-rw-r--r--src/mailman/database/transaction.py2
-rw-r--r--src/mailman/database/types.py2
-rw-r--r--src/mailman/docs/NEWS.rst4
-rw-r--r--src/mailman/docs/__init__.py2
-rw-r--r--src/mailman/email/message.py2
-rw-r--r--src/mailman/email/validate.py2
-rw-r--r--src/mailman/interact.py2
-rw-r--r--src/mailman/interfaces/action.py2
-rw-r--r--src/mailman/interfaces/address.py2
-rw-r--r--src/mailman/interfaces/archiver.py2
-rw-r--r--src/mailman/interfaces/autorespond.py2
-rw-r--r--src/mailman/interfaces/bans.py2
-rw-r--r--src/mailman/interfaces/bounce.py2
-rw-r--r--src/mailman/interfaces/chain.py2
-rw-r--r--src/mailman/interfaces/command.py2
-rw-r--r--src/mailman/interfaces/database.py2
-rw-r--r--src/mailman/interfaces/digests.py2
-rw-r--r--src/mailman/interfaces/domain.py2
-rw-r--r--src/mailman/interfaces/errors.py2
-rw-r--r--src/mailman/interfaces/handler.py2
-rw-r--r--src/mailman/interfaces/languages.py2
-rw-r--r--src/mailman/interfaces/listmanager.py2
-rw-r--r--src/mailman/interfaces/mailinglist.py2
-rw-r--r--src/mailman/interfaces/member.py2
-rw-r--r--src/mailman/interfaces/messages.py2
-rw-r--r--src/mailman/interfaces/mime.py2
-rw-r--r--src/mailman/interfaces/mlistrequest.py2
-rw-r--r--src/mailman/interfaces/mta.py2
-rw-r--r--src/mailman/interfaces/nntp.py2
-rw-r--r--src/mailman/interfaces/pending.py2
-rw-r--r--src/mailman/interfaces/permissions.py2
-rw-r--r--src/mailman/interfaces/pipeline.py2
-rw-r--r--src/mailman/interfaces/preferences.py2
-rw-r--r--src/mailman/interfaces/registrar.py2
-rw-r--r--src/mailman/interfaces/requests.py2
-rw-r--r--src/mailman/interfaces/roster.py2
-rw-r--r--src/mailman/interfaces/rules.py2
-rw-r--r--src/mailman/interfaces/runner.py2
-rw-r--r--src/mailman/interfaces/styles.py2
-rw-r--r--src/mailman/interfaces/subscriptions.py2
-rw-r--r--src/mailman/interfaces/switchboard.py2
-rw-r--r--src/mailman/interfaces/system.py2
-rw-r--r--src/mailman/interfaces/user.py2
-rw-r--r--src/mailman/interfaces/usermanager.py2
-rw-r--r--src/mailman/languages/language.py2
-rw-r--r--src/mailman/languages/manager.py2
-rw-r--r--src/mailman/model/address.py2
-rw-r--r--src/mailman/model/autorespond.py2
-rw-r--r--src/mailman/model/bans.py2
-rw-r--r--src/mailman/model/bounce.py2
-rw-r--r--src/mailman/model/digests.py2
-rw-r--r--src/mailman/model/docs/requests.rst4
-rw-r--r--src/mailman/model/domain.py2
-rw-r--r--src/mailman/model/language.py2
-rw-r--r--src/mailman/model/listmanager.py2
-rw-r--r--src/mailman/model/mailinglist.py2
-rw-r--r--src/mailman/model/member.py2
-rw-r--r--src/mailman/model/message.py2
-rw-r--r--src/mailman/model/messagestore.py2
-rw-r--r--src/mailman/model/mime.py2
-rw-r--r--src/mailman/model/pending.py2
-rw-r--r--src/mailman/model/preferences.py2
-rw-r--r--src/mailman/model/requests.py2
-rw-r--r--src/mailman/model/roster.py2
-rw-r--r--src/mailman/model/tests/test_bounce.py2
-rw-r--r--src/mailman/model/tests/test_domain.py2
-rw-r--r--src/mailman/model/tests/test_listmanager.py2
-rw-r--r--src/mailman/model/tests/test_member.py2
-rw-r--r--src/mailman/model/tests/test_uid.py2
-rw-r--r--src/mailman/model/tests/test_user.py2
-rw-r--r--src/mailman/model/uid.py2
-rw-r--r--src/mailman/model/user.py2
-rw-r--r--src/mailman/model/usermanager.py2
-rw-r--r--src/mailman/model/version.py2
-rw-r--r--src/mailman/mta/aliases.py2
-rw-r--r--src/mailman/mta/base.py2
-rw-r--r--src/mailman/mta/bulk.py2
-rw-r--r--src/mailman/mta/connection.py2
-rw-r--r--src/mailman/mta/decorating.py2
-rw-r--r--src/mailman/mta/deliver.py2
-rw-r--r--src/mailman/mta/null.py2
-rw-r--r--src/mailman/mta/personalized.py2
-rw-r--r--src/mailman/mta/postfix.py2
-rw-r--r--src/mailman/mta/tests/test_aliases.py2
-rw-r--r--src/mailman/mta/verp.py2
-rw-r--r--src/mailman/options.py2
-rw-r--r--src/mailman/pipeline/acknowledge.py2
-rw-r--r--src/mailman/pipeline/after_delivery.py2
-rw-r--r--src/mailman/pipeline/avoid_duplicates.py2
-rw-r--r--src/mailman/pipeline/calculate_recipients.py2
-rw-r--r--src/mailman/pipeline/cleanse.py2
-rw-r--r--src/mailman/pipeline/cleanse_dkim.py2
-rw-r--r--src/mailman/pipeline/cook_headers.py2
-rw-r--r--src/mailman/pipeline/decorate.py2
-rw-r--r--src/mailman/pipeline/file_recipients.py2
-rw-r--r--src/mailman/pipeline/mime_delete.py2
-rw-r--r--src/mailman/pipeline/owner_recipients.py2
-rw-r--r--src/mailman/pipeline/replybot.py2
-rw-r--r--src/mailman/pipeline/rfc_2369.py2
-rw-r--r--src/mailman/pipeline/scrubber.py2
-rw-r--r--src/mailman/pipeline/tagger.py2
-rw-r--r--src/mailman/pipeline/to_archive.py2
-rw-r--r--src/mailman/pipeline/to_digest.py2
-rw-r--r--src/mailman/pipeline/to_outgoing.py2
-rw-r--r--src/mailman/pipeline/to_usenet.py2
-rw-r--r--src/mailman/rest/addresses.py2
-rw-r--r--src/mailman/rest/configuration.py2
-rw-r--r--src/mailman/rest/docs/__init__.py2
-rw-r--r--src/mailman/rest/docs/users.rst2
-rw-r--r--src/mailman/rest/domains.py2
-rw-r--r--src/mailman/rest/helpers.py2
-rw-r--r--src/mailman/rest/lists.py2
-rw-r--r--src/mailman/rest/members.py2
-rw-r--r--src/mailman/rest/preferences.py2
-rw-r--r--src/mailman/rest/root.py2
-rw-r--r--src/mailman/rest/tests/test_addresses.py2
-rw-r--r--src/mailman/rest/tests/test_domains.py2
-rw-r--r--src/mailman/rest/tests/test_lists.py2
-rw-r--r--src/mailman/rest/tests/test_membership.py2
-rw-r--r--src/mailman/rest/tests/test_root.py2
-rw-r--r--src/mailman/rest/tests/test_users.py2
-rw-r--r--src/mailman/rest/users.py11
-rw-r--r--src/mailman/rest/validator.py2
-rw-r--r--src/mailman/rest/wsgiapp.py2
-rw-r--r--src/mailman/rules/administrivia.py2
-rw-r--r--src/mailman/rules/any.py2
-rw-r--r--src/mailman/rules/approved.py2
-rw-r--r--src/mailman/rules/emergency.py2
-rw-r--r--src/mailman/rules/implicit_dest.py2
-rw-r--r--src/mailman/rules/loop.py2
-rw-r--r--src/mailman/rules/max_recipients.py2
-rw-r--r--src/mailman/rules/max_size.py2
-rw-r--r--src/mailman/rules/moderation.py2
-rw-r--r--src/mailman/rules/news_moderation.py2
-rw-r--r--src/mailman/rules/no_subject.py2
-rw-r--r--src/mailman/rules/suspicious.py2
-rw-r--r--src/mailman/rules/truth.py2
-rw-r--r--src/mailman/runners/archive.py2
-rw-r--r--src/mailman/runners/bounce.py13
-rw-r--r--src/mailman/runners/command.py2
-rw-r--r--src/mailman/runners/digest.py2
-rw-r--r--src/mailman/runners/incoming.py2
-rw-r--r--src/mailman/runners/lmtp.py2
-rw-r--r--src/mailman/runners/maildir.py2
-rw-r--r--src/mailman/runners/news.py2
-rw-r--r--src/mailman/runners/outgoing.py2
-rw-r--r--src/mailman/runners/pipeline.py2
-rw-r--r--src/mailman/runners/rest.py2
-rw-r--r--src/mailman/runners/retry.py2
-rw-r--r--src/mailman/runners/tests/test_bounce.py2
-rw-r--r--src/mailman/runners/tests/test_outgoing.py2
-rw-r--r--src/mailman/runners/tests/test_retry.py2
-rw-r--r--src/mailman/runners/virgin.py2
-rw-r--r--src/mailman/styles/default.py2
-rw-r--r--src/mailman/styles/manager.py2
-rw-r--r--src/mailman/testing/__init__.py2
-rw-r--r--src/mailman/testing/i18n.py2
-rw-r--r--src/mailman/testing/layers.py2
-rw-r--r--src/mailman/testing/mailman-xx.po2
-rw-r--r--src/mailman/testing/mta.py2
-rw-r--r--src/mailman/testing/testing.cfg2
-rw-r--r--src/mailman/tests/test_configfile.py2
-rw-r--r--src/mailman/tests/test_documentation.py2
-rw-r--r--src/mailman/utilities/datetime.py2
-rw-r--r--src/mailman/utilities/email.py2
-rw-r--r--src/mailman/utilities/filesystem.py2
-rw-r--r--src/mailman/utilities/i18n.py2
-rw-r--r--src/mailman/utilities/importer.py2
-rw-r--r--src/mailman/utilities/mailbox.py2
-rw-r--r--src/mailman/utilities/modules.py2
-rw-r--r--src/mailman/utilities/passwords.py389
-rw-r--r--src/mailman/utilities/string.py2
-rw-r--r--src/mailman/utilities/tests/test_email.py2
-rw-r--r--src/mailman/utilities/tests/test_import.py2
-rw-r--r--src/mailman/utilities/tests/test_passwords.py204
-rw-r--r--src/mailman/utilities/tests/test_templates.py2
-rw-r--r--src/mailman/utilities/tests/test_wrap.py2
-rw-r--r--src/mailman/utilities/uid.py2
-rw-r--r--src/mailman/version.py2
275 files changed, 309 insertions, 890 deletions
diff --git a/src/mailman/Archiver/Archiver.py b/src/mailman/Archiver/Archiver.py
index 5150633ac..1e2af535f 100644
--- a/src/mailman/Archiver/Archiver.py
+++ b/src/mailman/Archiver/Archiver.py
@@ -1,4 +1,4 @@
-# Copyright (C) 1998-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 1998-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/Archiver/HyperArch.py b/src/mailman/Archiver/HyperArch.py
index 85e9b0e7c..cfb7813bf 100644
--- a/src/mailman/Archiver/HyperArch.py
+++ b/src/mailman/Archiver/HyperArch.py
@@ -1,4 +1,4 @@
-# Copyright (C) 1998-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 1998-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/Archiver/HyperDatabase.py b/src/mailman/Archiver/HyperDatabase.py
index 345979123..fecb544e8 100644
--- a/src/mailman/Archiver/HyperDatabase.py
+++ b/src/mailman/Archiver/HyperDatabase.py
@@ -1,4 +1,4 @@
-# Copyright (C) 1998-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 1998-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/Archiver/__init__.py b/src/mailman/Archiver/__init__.py
index 04bfb4262..be0c61ce0 100644
--- a/src/mailman/Archiver/__init__.py
+++ b/src/mailman/Archiver/__init__.py
@@ -1,4 +1,4 @@
-# Copyright (C) 1998-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 1998-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/__init__.py b/src/mailman/__init__.py
index 2c34e0971..943d53753 100644
--- a/src/mailman/__init__.py
+++ b/src/mailman/__init__.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/app/bounces.py b/src/mailman/app/bounces.py
index bd8b465ba..a9bed97ac 100644
--- a/src/mailman/app/bounces.py
+++ b/src/mailman/app/bounces.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/app/commands.py b/src/mailman/app/commands.py
index 0a9513927..70f0a8fa6 100644
--- a/src/mailman/app/commands.py
+++ b/src/mailman/app/commands.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2008-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/app/domain.py b/src/mailman/app/domain.py
index 1674052da..454997708 100644
--- a/src/mailman/app/domain.py
+++ b/src/mailman/app/domain.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2011-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/app/events.py b/src/mailman/app/events.py
index 2145223f6..79376cca1 100644
--- a/src/mailman/app/events.py
+++ b/src/mailman/app/events.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2011-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/app/finder.py b/src/mailman/app/finder.py
index bd1305c21..679da483a 100644
--- a/src/mailman/app/finder.py
+++ b/src/mailman/app/finder.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/app/inject.py b/src/mailman/app/inject.py
index edf4e0807..8bf907af0 100644
--- a/src/mailman/app/inject.py
+++ b/src/mailman/app/inject.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2001-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/app/lifecycle.py b/src/mailman/app/lifecycle.py
index a96bf96c1..6826d68f1 100644
--- a/src/mailman/app/lifecycle.py
+++ b/src/mailman/app/lifecycle.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/app/membership.py b/src/mailman/app/membership.py
index 88c0751f0..1d075afcd 100644
--- a/src/mailman/app/membership.py
+++ b/src/mailman/app/membership.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
@@ -27,9 +27,11 @@ __all__ = [
from email.utils import formataddr
+from flufl.password import lookup, make_secret
from zope.component import getUtility
from mailman.app.notifications import send_goodbye_message
+from mailman.config import config
from mailman.core.i18n import _
from mailman.email.message import OwnerNotification
from mailman.interfaces.address import IEmailValidator
@@ -38,7 +40,6 @@ from mailman.interfaces.member import (
MemberRole, MembershipIsBannedError, NotAMemberError)
from mailman.interfaces.usermanager import IUserManager
from mailman.utilities.i18n import make
-from mailman.utilities.passwords import encrypt_password
@@ -55,7 +56,7 @@ def add_member(mlist, email, realname, password, delivery_mode, language,
:type email: str
:param realname: The subscriber's full name.
:type realname: str
- :param password: The subscriber's password.
+ :param password: The subscriber's plain text password.
:type password: str
:param delivery_mode: The delivery mode the subscriber has chosen.
:type delivery_mode: DeliveryMode
@@ -96,7 +97,8 @@ def add_member(mlist, email, realname, password, delivery_mode, language,
user.link(address)
# Encrypt the password using the currently selected scheme. The
# scheme is recorded in the hashed password string.
- user.password = encrypt_password(password)
+ scheme = lookup(config.passwords.password_scheme.upper())
+ user.password = make_secret(password, scheme)
user.preferences.preferred_language = language
member = mlist.subscribe(address, role)
member.preferences.delivery_mode = delivery_mode
diff --git a/src/mailman/app/moderator.py b/src/mailman/app/moderator.py
index d2c6600ad..11eccd495 100644
--- a/src/mailman/app/moderator.py
+++ b/src/mailman/app/moderator.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/app/notifications.py b/src/mailman/app/notifications.py
index 72413845c..c5d50d5e3 100644
--- a/src/mailman/app/notifications.py
+++ b/src/mailman/app/notifications.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/app/registrar.py b/src/mailman/app/registrar.py
index 42111ef53..e1d804167 100644
--- a/src/mailman/app/registrar.py
+++ b/src/mailman/app/registrar.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/app/replybot.py b/src/mailman/app/replybot.py
index 97000c549..403288cdd 100644
--- a/src/mailman/app/replybot.py
+++ b/src/mailman/app/replybot.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/app/subscriptions.py b/src/mailman/app/subscriptions.py
index 9eba89d8b..668f97dbd 100644
--- a/src/mailman/app/subscriptions.py
+++ b/src/mailman/app/subscriptions.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
@@ -26,6 +26,7 @@ __all__ = [
]
+from flufl.password import generate
from operator import attrgetter
from storm.expr import And, Or
from uuid import UUID
@@ -43,7 +44,6 @@ from mailman.interfaces.subscriptions import (
ISubscriptionService, MissingUserError)
from mailman.interfaces.usermanager import IUserManager
from mailman.model.member import Member
-from mailman.utilities.passwords import make_user_friendly_password
@@ -161,7 +161,7 @@ class SubscriptionService:
# password to a system default. This will have to get reset since
# it can't be retrieved. Note that none of these are used unless
# the address is completely new to us.
- password = make_user_friendly_password()
+ password = generate(int(config.passwords.password_length))
return add_member(mlist, subscriber, real_name, password,
delivery_mode,
system_preferences.preferred_language, role)
diff --git a/src/mailman/app/tests/test_bounces.py b/src/mailman/app/tests/test_bounces.py
index 1646e02ae..3e2571e55 100644
--- a/src/mailman/app/tests/test_bounces.py
+++ b/src/mailman/app/tests/test_bounces.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2011-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/app/tests/test_inject.py b/src/mailman/app/tests/test_inject.py
index c03167e1a..2815878ab 100644
--- a/src/mailman/app/tests/test_inject.py
+++ b/src/mailman/app/tests/test_inject.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2011-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/app/tests/test_membership.py b/src/mailman/app/tests/test_membership.py
index 8222dc56c..74e15d0e2 100644
--- a/src/mailman/app/tests/test_membership.py
+++ b/src/mailman/app/tests/test_membership.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2011-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/app/tests/test_moderation.py b/src/mailman/app/tests/test_moderation.py
index a907b40dd..2a75043d5 100644
--- a/src/mailman/app/tests/test_moderation.py
+++ b/src/mailman/app/tests/test_moderation.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2011-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/app/tests/test_subscriptions.py b/src/mailman/app/tests/test_subscriptions.py
index a906e0ec5..6ab386f7f 100644
--- a/src/mailman/app/tests/test_subscriptions.py
+++ b/src/mailman/app/tests/test_subscriptions.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2011-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/archiving/mailarchive.py b/src/mailman/archiving/mailarchive.py
index 4218c549f..29c0e22c2 100644
--- a/src/mailman/archiving/mailarchive.py
+++ b/src/mailman/archiving/mailarchive.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2008-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/archiving/mhonarc.py b/src/mailman/archiving/mhonarc.py
index c38c714b6..db0b12c3d 100644
--- a/src/mailman/archiving/mhonarc.py
+++ b/src/mailman/archiving/mhonarc.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2008-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/archiving/pipermail.py b/src/mailman/archiving/pipermail.py
index f1bcb3b01..03dcd97f4 100644
--- a/src/mailman/archiving/pipermail.py
+++ b/src/mailman/archiving/pipermail.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/archiving/prototype.py b/src/mailman/archiving/prototype.py
index 902b9a263..0a857fd77 100644
--- a/src/mailman/archiving/prototype.py
+++ b/src/mailman/archiving/prototype.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2008-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/bin/arch.py b/src/mailman/bin/arch.py
index 1f2d6b626..64fd235aa 100644
--- a/src/mailman/bin/arch.py
+++ b/src/mailman/bin/arch.py
@@ -1,4 +1,4 @@
-# Copyright (C) 1998-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 1998-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/bin/bumpdigests.py b/src/mailman/bin/bumpdigests.py
index c68f22264..6c8ad4984 100644
--- a/src/mailman/bin/bumpdigests.py
+++ b/src/mailman/bin/bumpdigests.py
@@ -1,4 +1,4 @@
-# Copyright (C) 1998-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 1998-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/bin/check_perms.py b/src/mailman/bin/check_perms.py
index 47aff41d4..6e0d761d9 100644
--- a/src/mailman/bin/check_perms.py
+++ b/src/mailman/bin/check_perms.py
@@ -1,4 +1,4 @@
-# Copyright (C) 1998-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 1998-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/bin/checkdbs.py b/src/mailman/bin/checkdbs.py
index 2f93ecc77..023dddbda 100644
--- a/src/mailman/bin/checkdbs.py
+++ b/src/mailman/bin/checkdbs.py
@@ -1,4 +1,4 @@
-# Copyright (C) 1998-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 1998-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/bin/cleanarch.py b/src/mailman/bin/cleanarch.py
index 1bf530a0f..48b96d191 100644
--- a/src/mailman/bin/cleanarch.py
+++ b/src/mailman/bin/cleanarch.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2001-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/bin/config_list.py b/src/mailman/bin/config_list.py
index 94870b6a8..d16a5ff3f 100644
--- a/src/mailman/bin/config_list.py
+++ b/src/mailman/bin/config_list.py
@@ -1,4 +1,4 @@
-# Copyright (C) 1998-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 1998-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/bin/disabled.py b/src/mailman/bin/disabled.py
index 6058ec10c..4d7167417 100644
--- a/src/mailman/bin/disabled.py
+++ b/src/mailman/bin/disabled.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2001-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/bin/export.py b/src/mailman/bin/export.py
index df4fa07e0..b278c4e2b 100644
--- a/src/mailman/bin/export.py
+++ b/src/mailman/bin/export.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2006-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/bin/find_member.py b/src/mailman/bin/find_member.py
index 9571219f0..ab2386fa0 100644
--- a/src/mailman/bin/find_member.py
+++ b/src/mailman/bin/find_member.py
@@ -1,4 +1,4 @@
-# Copyright (C) 1998-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 1998-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/bin/gate_news.py b/src/mailman/bin/gate_news.py
index 3d637bd82..f0cae40a0 100644
--- a/src/mailman/bin/gate_news.py
+++ b/src/mailman/bin/gate_news.py
@@ -1,4 +1,4 @@
-# Copyright (C) 1998-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 1998-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/bin/list_owners.py b/src/mailman/bin/list_owners.py
index b5db2ec3c..3b40061ec 100644
--- a/src/mailman/bin/list_owners.py
+++ b/src/mailman/bin/list_owners.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2002-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/bin/mailman.py b/src/mailman/bin/mailman.py
index 4e3a36971..14d25f2a7 100644
--- a/src/mailman/bin/mailman.py
+++ b/src/mailman/bin/mailman.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/bin/master.py b/src/mailman/bin/master.py
index e31780a31..25a7dc444 100644
--- a/src/mailman/bin/master.py
+++ b/src/mailman/bin/master.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2001-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/bin/nightly_gzip.py b/src/mailman/bin/nightly_gzip.py
index e8d899665..2d1c5b8a1 100644
--- a/src/mailman/bin/nightly_gzip.py
+++ b/src/mailman/bin/nightly_gzip.py
@@ -1,4 +1,4 @@
-# Copyright (C) 1998-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 1998-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/bin/onebounce.py b/src/mailman/bin/onebounce.py
index 7811de104..85b84eaad 100644
--- a/src/mailman/bin/onebounce.py
+++ b/src/mailman/bin/onebounce.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2002-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/bin/runner.py b/src/mailman/bin/runner.py
index 6e25979be..5bbe07f6e 100644
--- a/src/mailman/bin/runner.py
+++ b/src/mailman/bin/runner.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2001-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/bin/senddigests.py b/src/mailman/bin/senddigests.py
index 5e95ffeef..5d227015e 100644
--- a/src/mailman/bin/senddigests.py
+++ b/src/mailman/bin/senddigests.py
@@ -1,4 +1,4 @@
-# Copyright (C) 1998-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 1998-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/bin/set_members.py b/src/mailman/bin/set_members.py
index ef65d1b45..6ec66af06 100644
--- a/src/mailman/bin/set_members.py
+++ b/src/mailman/bin/set_members.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/bin/show_config.py b/src/mailman/bin/show_config.py
index 80b957088..030f2eb66 100644
--- a/src/mailman/bin/show_config.py
+++ b/src/mailman/bin/show_config.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2006-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/bin/show_qfiles.py b/src/mailman/bin/show_qfiles.py
index 982e535d4..08f5fb04e 100644
--- a/src/mailman/bin/show_qfiles.py
+++ b/src/mailman/bin/show_qfiles.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2006-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/bin/tests/test_master.py b/src/mailman/bin/tests/test_master.py
index af00051a2..c27371c1e 100644
--- a/src/mailman/bin/tests/test_master.py
+++ b/src/mailman/bin/tests/test_master.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2010-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/bin/update.py b/src/mailman/bin/update.py
index 1b9a7094b..3beda2d97 100644
--- a/src/mailman/bin/update.py
+++ b/src/mailman/bin/update.py
@@ -1,4 +1,4 @@
-# Copyright (C) 1998-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 1998-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/chains/accept.py b/src/mailman/chains/accept.py
index 589199fdc..b1e4b1cf0 100644
--- a/src/mailman/chains/accept.py
+++ b/src/mailman/chains/accept.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/chains/base.py b/src/mailman/chains/base.py
index d42eced3e..8a2e87ee2 100644
--- a/src/mailman/chains/base.py
+++ b/src/mailman/chains/base.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2008-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/chains/builtin.py b/src/mailman/chains/builtin.py
index 8bc2567e1..947d2509b 100644
--- a/src/mailman/chains/builtin.py
+++ b/src/mailman/chains/builtin.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/chains/discard.py b/src/mailman/chains/discard.py
index 2839b9e93..0a4bfe9ac 100644
--- a/src/mailman/chains/discard.py
+++ b/src/mailman/chains/discard.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/chains/headers.py b/src/mailman/chains/headers.py
index fd6edebc0..335c0a156 100644
--- a/src/mailman/chains/headers.py
+++ b/src/mailman/chains/headers.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/chains/hold.py b/src/mailman/chains/hold.py
index dd7276aed..f095bc182 100644
--- a/src/mailman/chains/hold.py
+++ b/src/mailman/chains/hold.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/chains/moderation.py b/src/mailman/chains/moderation.py
index fcba31f82..9f9633346 100644
--- a/src/mailman/chains/moderation.py
+++ b/src/mailman/chains/moderation.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2010-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/chains/reject.py b/src/mailman/chains/reject.py
index 7501b7fac..cf1b86fb2 100644
--- a/src/mailman/chains/reject.py
+++ b/src/mailman/chains/reject.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/chains/tests/test_hold.py b/src/mailman/chains/tests/test_hold.py
index 292213da4..3c337a501 100644
--- a/src/mailman/chains/tests/test_hold.py
+++ b/src/mailman/chains/tests/test_hold.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2011-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/commands/cli_aliases.py b/src/mailman/commands/cli_aliases.py
index 31affc78c..7c1577c9c 100644
--- a/src/mailman/commands/cli_aliases.py
+++ b/src/mailman/commands/cli_aliases.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/commands/cli_control.py b/src/mailman/commands/cli_control.py
index b2dc1bdd0..2013d6745 100644
--- a/src/mailman/commands/cli_control.py
+++ b/src/mailman/commands/cli_control.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/commands/cli_help.py b/src/mailman/commands/cli_help.py
index 7a364c260..538d9c520 100644
--- a/src/mailman/commands/cli_help.py
+++ b/src/mailman/commands/cli_help.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/commands/cli_import.py b/src/mailman/commands/cli_import.py
index 6e56a8d8a..b703f3ffd 100644
--- a/src/mailman/commands/cli_import.py
+++ b/src/mailman/commands/cli_import.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2010-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/commands/cli_info.py b/src/mailman/commands/cli_info.py
index 4b7f2a2fb..24ccec4fb 100644
--- a/src/mailman/commands/cli_info.py
+++ b/src/mailman/commands/cli_info.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/commands/cli_inject.py b/src/mailman/commands/cli_inject.py
index a3e61e2a4..321a92c78 100644
--- a/src/mailman/commands/cli_inject.py
+++ b/src/mailman/commands/cli_inject.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/commands/cli_lists.py b/src/mailman/commands/cli_lists.py
index a2df63031..42e67e3a8 100644
--- a/src/mailman/commands/cli_lists.py
+++ b/src/mailman/commands/cli_lists.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/commands/cli_members.py b/src/mailman/commands/cli_members.py
index 96469c0f1..f37fb6ecb 100644
--- a/src/mailman/commands/cli_members.py
+++ b/src/mailman/commands/cli_members.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
@@ -29,6 +29,7 @@ import sys
import codecs
from email.utils import formataddr, parseaddr
+from flufl.password import generate
from operator import attrgetter
from zope.component import getUtility
from zope.interface import implements
@@ -40,7 +41,6 @@ from mailman.interfaces.command import ICLISubCommand
from mailman.interfaces.listmanager import IListManager
from mailman.interfaces.member import (
AlreadySubscribedError, DeliveryMode, DeliveryStatus)
-from mailman.utilities.passwords import make_user_friendly_password
@@ -198,7 +198,7 @@ class Members:
real_name = real_name.decode(fp.encoding)
email = email.decode(fp.encoding)
# Give the user a default, user-friendly password.
- password = make_user_friendly_password()
+ password = generate(int(config.passwords.password_length))
try:
add_member(mlist, email, real_name, password,
DeliveryMode.regular,
diff --git a/src/mailman/commands/cli_qfile.py b/src/mailman/commands/cli_qfile.py
index 1faa78cf1..5851388de 100644
--- a/src/mailman/commands/cli_qfile.py
+++ b/src/mailman/commands/cli_qfile.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/commands/cli_status.py b/src/mailman/commands/cli_status.py
index eee1ac73b..14b0d976b 100644
--- a/src/mailman/commands/cli_status.py
+++ b/src/mailman/commands/cli_status.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2010-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/commands/cli_unshunt.py b/src/mailman/commands/cli_unshunt.py
index ee8f347a6..4ce711b83 100644
--- a/src/mailman/commands/cli_unshunt.py
+++ b/src/mailman/commands/cli_unshunt.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/commands/cli_version.py b/src/mailman/commands/cli_version.py
index 084df5a79..4090b1173 100644
--- a/src/mailman/commands/cli_version.py
+++ b/src/mailman/commands/cli_version.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/commands/cli_withlist.py b/src/mailman/commands/cli_withlist.py
index 1b5cab336..61e1bec7c 100644
--- a/src/mailman/commands/cli_withlist.py
+++ b/src/mailman/commands/cli_withlist.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
@@ -21,6 +21,7 @@ from __future__ import absolute_import, unicode_literals
__metaclass__ = type
__all__ = [
+ 'Shell',
'Withlist',
]
@@ -212,3 +213,10 @@ mailing list. You could put the following function in a file called
and run this from the command line:
% bin/mailman withlist -r change mylist@example.com 'My List'""")
+
+
+
+class Shell(Withlist):
+ """An alias for `withlist`."""
+
+ name = 'shell'
diff --git a/src/mailman/commands/eml_confirm.py b/src/mailman/commands/eml_confirm.py
index 185e447df..97bb80f06 100644
--- a/src/mailman/commands/eml_confirm.py
+++ b/src/mailman/commands/eml_confirm.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/commands/eml_echo.py b/src/mailman/commands/eml_echo.py
index 71f8b9e31..4686d0e4d 100644
--- a/src/mailman/commands/eml_echo.py
+++ b/src/mailman/commands/eml_echo.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2002-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/commands/eml_end.py b/src/mailman/commands/eml_end.py
index 764a0d3f0..56fd705a2 100644
--- a/src/mailman/commands/eml_end.py
+++ b/src/mailman/commands/eml_end.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2002-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/commands/eml_membership.py b/src/mailman/commands/eml_membership.py
index 9b0c21ebd..e68d501ee 100644
--- a/src/mailman/commands/eml_membership.py
+++ b/src/mailman/commands/eml_membership.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2002-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/commands/tests/test_control.py b/src/mailman/commands/tests/test_control.py
index 73b7395ff..df9b24107 100644
--- a/src/mailman/commands/tests/test_control.py
+++ b/src/mailman/commands/tests/test_control.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2011-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/commands/tests/test_create.py b/src/mailman/commands/tests/test_create.py
index 75218de94..994e0cd0d 100644
--- a/src/mailman/commands/tests/test_create.py
+++ b/src/mailman/commands/tests/test_create.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2011-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/config/__init__.py b/src/mailman/config/__init__.py
index 391dcf453..b13d475ee 100644
--- a/src/mailman/config/__init__.py
+++ b/src/mailman/config/__init__.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2008-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/config/config.py b/src/mailman/config/config.py
index 7d54643c7..89d9e39ad 100644
--- a/src/mailman/config/config.py
+++ b/src/mailman/config/config.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2006-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/config/mailman.cfg b/src/mailman/config/mailman.cfg
index 8f64365e8..22c3a129b 100644
--- a/src/mailman/config/mailman.cfg
+++ b/src/mailman/config/mailman.cfg
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2008-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/config/schema.cfg b/src/mailman/config/schema.cfg
index 8f0c863fc..c94a3828b 100644
--- a/src/mailman/config/schema.cfg
+++ b/src/mailman/config/schema.cfg
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2008-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
@@ -149,18 +149,6 @@ password_scheme: ssha
# When Mailman generates them, this is the default length of passwords.
password_length: 8
-# Specify the type of passwords to use, when Mailman generates the passwords
-# itself, as would be the case for membership requests where the user did not
-# fill in a password, or during list creation, when auto-generation of admin
-# passwords was selected.
-#
-# Set this value to 'yes' for classic Mailman user-friendly(er) passwords.
-# These generate semi-pronounceable passwords which are easier to remember.
-# Set this value to 'no' to use more cryptographically secure, but harder to
-# remember, passwords -- if your operating system and Python version support
-# the necessary feature (specifically that /dev/urandom be available).
-user_friendly_passwords: yes
-
[runner.master]
# Define which runners, and how many of them, to start.
diff --git a/src/mailman/core/chains.py b/src/mailman/core/chains.py
index 31652a684..1dbb8429b 100644
--- a/src/mailman/core/chains.py
+++ b/src/mailman/core/chains.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/core/constants.py b/src/mailman/core/constants.py
index a504b8498..02d46a088 100644
--- a/src/mailman/core/constants.py
+++ b/src/mailman/core/constants.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2006-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/core/errors.py b/src/mailman/core/errors.py
index 8b30f2700..ea1c78967 100644
--- a/src/mailman/core/errors.py
+++ b/src/mailman/core/errors.py
@@ -1,4 +1,4 @@
-# Copyright (C) 1998-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 1998-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/core/i18n.py b/src/mailman/core/i18n.py
index 4c898be2a..2d7c382c7 100644
--- a/src/mailman/core/i18n.py
+++ b/src/mailman/core/i18n.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/core/initialize.py b/src/mailman/core/initialize.py
index bf0f8b542..8339eb825 100644
--- a/src/mailman/core/initialize.py
+++ b/src/mailman/core/initialize.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2006-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/core/logging.py b/src/mailman/core/logging.py
index fcd20b787..af04b58d1 100644
--- a/src/mailman/core/logging.py
+++ b/src/mailman/core/logging.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2006-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/core/pipelines.py b/src/mailman/core/pipelines.py
index 7efc8e329..6e439af6f 100644
--- a/src/mailman/core/pipelines.py
+++ b/src/mailman/core/pipelines.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2008-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/core/rules.py b/src/mailman/core/rules.py
index 95de29190..6aac0a64b 100644
--- a/src/mailman/core/rules.py
+++ b/src/mailman/core/rules.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/core/runner.py b/src/mailman/core/runner.py
index c24563e68..30189600d 100644
--- a/src/mailman/core/runner.py
+++ b/src/mailman/core/runner.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2001-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/core/switchboard.py b/src/mailman/core/switchboard.py
index 8b971ad33..ba8b2ec3f 100644
--- a/src/mailman/core/switchboard.py
+++ b/src/mailman/core/switchboard.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2001-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/core/system.py b/src/mailman/core/system.py
index 34518cea5..ce66761a7 100644
--- a/src/mailman/core/system.py
+++ b/src/mailman/core/system.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/database/base.py b/src/mailman/database/base.py
index bf5afd5d4..e28ca1893 100644
--- a/src/mailman/database/base.py
+++ b/src/mailman/database/base.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2006-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/database/model.py b/src/mailman/database/model.py
index eec88936f..9f6bf9845 100644
--- a/src/mailman/database/model.py
+++ b/src/mailman/database/model.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2006-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/database/postgresql.py b/src/mailman/database/postgresql.py
index 4e40558a4..9ad8f74b5 100644
--- a/src/mailman/database/postgresql.py
+++ b/src/mailman/database/postgresql.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2011-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/database/sqlite.py b/src/mailman/database/sqlite.py
index a68dc1eea..f48ea19c7 100644
--- a/src/mailman/database/sqlite.py
+++ b/src/mailman/database/sqlite.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2011-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/database/transaction.py b/src/mailman/database/transaction.py
index f0e9e5f9f..47e58d3e2 100644
--- a/src/mailman/database/transaction.py
+++ b/src/mailman/database/transaction.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2006-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/database/types.py b/src/mailman/database/types.py
index 21333214a..99e9870e8 100644
--- a/src/mailman/database/types.py
+++ b/src/mailman/database/types.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/docs/NEWS.rst b/src/mailman/docs/NEWS.rst
index ae9f502ec..c1553fd66 100644
--- a/src/mailman/docs/NEWS.rst
+++ b/src/mailman/docs/NEWS.rst
@@ -21,6 +21,10 @@ Architecture
* Dynamically calculate the `List-Id` header instead of storing it in the
database. This means it cannot be changed.
+Commands
+--------
+ * `bin/mailman shell` is an alias for `withlist`.
+
Bug fixes
---------
* Fixed KeyError in retry runner, contributed by Stephen A. Goss.
diff --git a/src/mailman/docs/__init__.py b/src/mailman/docs/__init__.py
index 2679603ad..092fc8238 100644
--- a/src/mailman/docs/__init__.py
+++ b/src/mailman/docs/__init__.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/email/message.py b/src/mailman/email/message.py
index 55b439530..d7bf81055 100644
--- a/src/mailman/email/message.py
+++ b/src/mailman/email/message.py
@@ -1,4 +1,4 @@
-# Copyright (C) 1998-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 1998-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/email/validate.py b/src/mailman/email/validate.py
index e21bb1de5..d0df7592f 100644
--- a/src/mailman/email/validate.py
+++ b/src/mailman/email/validate.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/interact.py b/src/mailman/interact.py
index 1fb01946f..3e7715c00 100644
--- a/src/mailman/interact.py
+++ b/src/mailman/interact.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2006-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/interfaces/action.py b/src/mailman/interfaces/action.py
index ce8983a19..c7c79f7d8 100644
--- a/src/mailman/interfaces/action.py
+++ b/src/mailman/interfaces/action.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/interfaces/address.py b/src/mailman/interfaces/address.py
index 2f6d05bba..c26fb92c9 100644
--- a/src/mailman/interfaces/address.py
+++ b/src/mailman/interfaces/address.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/interfaces/archiver.py b/src/mailman/interfaces/archiver.py
index 0c01b4a1b..f24e44183 100644
--- a/src/mailman/interfaces/archiver.py
+++ b/src/mailman/interfaces/archiver.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2008-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/interfaces/autorespond.py b/src/mailman/interfaces/autorespond.py
index 584e76cb7..66a67a3ba 100644
--- a/src/mailman/interfaces/autorespond.py
+++ b/src/mailman/interfaces/autorespond.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/interfaces/bans.py b/src/mailman/interfaces/bans.py
index d14109cc1..233a374b1 100644
--- a/src/mailman/interfaces/bans.py
+++ b/src/mailman/interfaces/bans.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2011-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/interfaces/bounce.py b/src/mailman/interfaces/bounce.py
index f899a94a3..939d75f3e 100644
--- a/src/mailman/interfaces/bounce.py
+++ b/src/mailman/interfaces/bounce.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2010-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/interfaces/chain.py b/src/mailman/interfaces/chain.py
index df2fddfbc..2dd3a8d7d 100644
--- a/src/mailman/interfaces/chain.py
+++ b/src/mailman/interfaces/chain.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/interfaces/command.py b/src/mailman/interfaces/command.py
index ade69c9af..f4173792a 100644
--- a/src/mailman/interfaces/command.py
+++ b/src/mailman/interfaces/command.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2008-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/interfaces/database.py b/src/mailman/interfaces/database.py
index 7f04be5de..e628354b1 100644
--- a/src/mailman/interfaces/database.py
+++ b/src/mailman/interfaces/database.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/interfaces/digests.py b/src/mailman/interfaces/digests.py
index e342159c7..e45f04722 100644
--- a/src/mailman/interfaces/digests.py
+++ b/src/mailman/interfaces/digests.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/interfaces/domain.py b/src/mailman/interfaces/domain.py
index fef32cf96..4c630f251 100644
--- a/src/mailman/interfaces/domain.py
+++ b/src/mailman/interfaces/domain.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/interfaces/errors.py b/src/mailman/interfaces/errors.py
index 46e4c55b0..9f8610932 100644
--- a/src/mailman/interfaces/errors.py
+++ b/src/mailman/interfaces/errors.py
@@ -1,4 +1,4 @@
-# Copyright (C) 1998-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 1998-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/interfaces/handler.py b/src/mailman/interfaces/handler.py
index dab919fce..f9a075b8c 100644
--- a/src/mailman/interfaces/handler.py
+++ b/src/mailman/interfaces/handler.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2008-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/interfaces/languages.py b/src/mailman/interfaces/languages.py
index 844c72d54..e44534d72 100644
--- a/src/mailman/interfaces/languages.py
+++ b/src/mailman/interfaces/languages.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/interfaces/listmanager.py b/src/mailman/interfaces/listmanager.py
index c1b7721a9..2f00b3e91 100644
--- a/src/mailman/interfaces/listmanager.py
+++ b/src/mailman/interfaces/listmanager.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/interfaces/mailinglist.py b/src/mailman/interfaces/mailinglist.py
index d96e844bf..69f50cf42 100644
--- a/src/mailman/interfaces/mailinglist.py
+++ b/src/mailman/interfaces/mailinglist.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/interfaces/member.py b/src/mailman/interfaces/member.py
index 5073b3059..52bacc72d 100644
--- a/src/mailman/interfaces/member.py
+++ b/src/mailman/interfaces/member.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/interfaces/messages.py b/src/mailman/interfaces/messages.py
index d364e9e60..08f5530e7 100644
--- a/src/mailman/interfaces/messages.py
+++ b/src/mailman/interfaces/messages.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/interfaces/mime.py b/src/mailman/interfaces/mime.py
index ce99b74ee..e3c115f02 100644
--- a/src/mailman/interfaces/mime.py
+++ b/src/mailman/interfaces/mime.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/interfaces/mlistrequest.py b/src/mailman/interfaces/mlistrequest.py
index 5e928a640..b35457c79 100644
--- a/src/mailman/interfaces/mlistrequest.py
+++ b/src/mailman/interfaces/mlistrequest.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/interfaces/mta.py b/src/mailman/interfaces/mta.py
index 0e6fd0938..e1567f377 100644
--- a/src/mailman/interfaces/mta.py
+++ b/src/mailman/interfaces/mta.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/interfaces/nntp.py b/src/mailman/interfaces/nntp.py
index 8bd0282f2..099e14a07 100644
--- a/src/mailman/interfaces/nntp.py
+++ b/src/mailman/interfaces/nntp.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/interfaces/pending.py b/src/mailman/interfaces/pending.py
index 1c5b737f8..483babf4e 100644
--- a/src/mailman/interfaces/pending.py
+++ b/src/mailman/interfaces/pending.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/interfaces/permissions.py b/src/mailman/interfaces/permissions.py
index 75a1fde04..afbad7ec4 100644
--- a/src/mailman/interfaces/permissions.py
+++ b/src/mailman/interfaces/permissions.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/interfaces/pipeline.py b/src/mailman/interfaces/pipeline.py
index 1bdb6a836..f7cf6baf1 100644
--- a/src/mailman/interfaces/pipeline.py
+++ b/src/mailman/interfaces/pipeline.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2008-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/interfaces/preferences.py b/src/mailman/interfaces/preferences.py
index bbf767d9f..a1382ab0b 100644
--- a/src/mailman/interfaces/preferences.py
+++ b/src/mailman/interfaces/preferences.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/interfaces/registrar.py b/src/mailman/interfaces/registrar.py
index 6deacfea8..846ad2014 100644
--- a/src/mailman/interfaces/registrar.py
+++ b/src/mailman/interfaces/registrar.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/interfaces/requests.py b/src/mailman/interfaces/requests.py
index 226e71c2c..55fb6395c 100644
--- a/src/mailman/interfaces/requests.py
+++ b/src/mailman/interfaces/requests.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/interfaces/roster.py b/src/mailman/interfaces/roster.py
index 880087e77..4ec3c611c 100644
--- a/src/mailman/interfaces/roster.py
+++ b/src/mailman/interfaces/roster.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/interfaces/rules.py b/src/mailman/interfaces/rules.py
index a41870584..bfb845341 100644
--- a/src/mailman/interfaces/rules.py
+++ b/src/mailman/interfaces/rules.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/interfaces/runner.py b/src/mailman/interfaces/runner.py
index 1761f9426..4611fa3a7 100644
--- a/src/mailman/interfaces/runner.py
+++ b/src/mailman/interfaces/runner.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/interfaces/styles.py b/src/mailman/interfaces/styles.py
index b9088e7dd..8dfd52145 100644
--- a/src/mailman/interfaces/styles.py
+++ b/src/mailman/interfaces/styles.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/interfaces/subscriptions.py b/src/mailman/interfaces/subscriptions.py
index 006249922..584ca4132 100644
--- a/src/mailman/interfaces/subscriptions.py
+++ b/src/mailman/interfaces/subscriptions.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/interfaces/switchboard.py b/src/mailman/interfaces/switchboard.py
index a0c6f784e..78ab63fad 100644
--- a/src/mailman/interfaces/switchboard.py
+++ b/src/mailman/interfaces/switchboard.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/interfaces/system.py b/src/mailman/interfaces/system.py
index f1a28ea84..59d56f3fe 100644
--- a/src/mailman/interfaces/system.py
+++ b/src/mailman/interfaces/system.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/interfaces/user.py b/src/mailman/interfaces/user.py
index 16dc1b0ea..ad1ac9282 100644
--- a/src/mailman/interfaces/user.py
+++ b/src/mailman/interfaces/user.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/interfaces/usermanager.py b/src/mailman/interfaces/usermanager.py
index c6486dfaf..b5e5d6551 100644
--- a/src/mailman/interfaces/usermanager.py
+++ b/src/mailman/interfaces/usermanager.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/languages/language.py b/src/mailman/languages/language.py
index f27780be3..04f9c6639 100644
--- a/src/mailman/languages/language.py
+++ b/src/mailman/languages/language.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/languages/manager.py b/src/mailman/languages/manager.py
index e5f63d89b..1e3cc1e77 100644
--- a/src/mailman/languages/manager.py
+++ b/src/mailman/languages/manager.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/model/address.py b/src/mailman/model/address.py
index 0ba0f47d5..1a891a7c7 100644
--- a/src/mailman/model/address.py
+++ b/src/mailman/model/address.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2006-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/model/autorespond.py b/src/mailman/model/autorespond.py
index 8fb2ca937..7b42205b4 100644
--- a/src/mailman/model/autorespond.py
+++ b/src/mailman/model/autorespond.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/model/bans.py b/src/mailman/model/bans.py
index 95711cfa9..9dc0c51ba 100644
--- a/src/mailman/model/bans.py
+++ b/src/mailman/model/bans.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2011-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/model/bounce.py b/src/mailman/model/bounce.py
index eaeaf33bf..8c55e3d16 100644
--- a/src/mailman/model/bounce.py
+++ b/src/mailman/model/bounce.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2011-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/model/digests.py b/src/mailman/model/digests.py
index d24b946ed..d7805ebf6 100644
--- a/src/mailman/model/digests.py
+++ b/src/mailman/model/digests.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/model/docs/requests.rst b/src/mailman/model/docs/requests.rst
index e01544490..1bc66c40a 100644
--- a/src/mailman/model/docs/requests.rst
+++ b/src/mailman/model/docs/requests.rst
@@ -544,7 +544,7 @@ mailing list.
>>> mlist.send_welcome_msg = True
>>> id_4 = moderator.hold_subscription(mlist,
... 'fperson@example.org', 'Frank Person',
- ... '{NONE}abcxyz', DeliveryMode.regular, 'en')
+ ... 'abcxyz', DeliveryMode.regular, 'en')
A message will be sent to the moderators telling them about the held
subscription and the fact that they may need to approve it.
@@ -695,7 +695,7 @@ Frank Person is now a member of the mailing list.
>>> print member.user.real_name
Frank Person
>>> print member.user.password
- {NONE}abcxyz
+ {CLEARTEXT}abcxyz
Holding unsubscription requests
diff --git a/src/mailman/model/domain.py b/src/mailman/model/domain.py
index 78918e7a3..49c935740 100644
--- a/src/mailman/model/domain.py
+++ b/src/mailman/model/domain.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2008-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/model/language.py b/src/mailman/model/language.py
index 57f5497f5..da86b326c 100644
--- a/src/mailman/model/language.py
+++ b/src/mailman/model/language.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2006-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/model/listmanager.py b/src/mailman/model/listmanager.py
index 16185e670..91d653982 100644
--- a/src/mailman/model/listmanager.py
+++ b/src/mailman/model/listmanager.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/model/mailinglist.py b/src/mailman/model/mailinglist.py
index 7e05e94ef..d506c2c00 100644
--- a/src/mailman/model/mailinglist.py
+++ b/src/mailman/model/mailinglist.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2006-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/model/member.py b/src/mailman/model/member.py
index f8168fc92..ae83fb388 100644
--- a/src/mailman/model/member.py
+++ b/src/mailman/model/member.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/model/message.py b/src/mailman/model/message.py
index c1e44d384..3345c64c9 100644
--- a/src/mailman/model/message.py
+++ b/src/mailman/model/message.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/model/messagestore.py b/src/mailman/model/messagestore.py
index 0301b2188..59490993b 100644
--- a/src/mailman/model/messagestore.py
+++ b/src/mailman/model/messagestore.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/model/mime.py b/src/mailman/model/mime.py
index fee8a6184..c611aab89 100644
--- a/src/mailman/model/mime.py
+++ b/src/mailman/model/mime.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/model/pending.py b/src/mailman/model/pending.py
index b411e6e88..72746295b 100644
--- a/src/mailman/model/pending.py
+++ b/src/mailman/model/pending.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/model/preferences.py b/src/mailman/model/preferences.py
index ca96e137b..234c7399e 100644
--- a/src/mailman/model/preferences.py
+++ b/src/mailman/model/preferences.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2006-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/model/requests.py b/src/mailman/model/requests.py
index 20ded6534..bd7fe3796 100644
--- a/src/mailman/model/requests.py
+++ b/src/mailman/model/requests.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/model/roster.py b/src/mailman/model/roster.py
index c36af108f..35ddcf438 100644
--- a/src/mailman/model/roster.py
+++ b/src/mailman/model/roster.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/model/tests/test_bounce.py b/src/mailman/model/tests/test_bounce.py
index da203e077..da2b661ea 100644
--- a/src/mailman/model/tests/test_bounce.py
+++ b/src/mailman/model/tests/test_bounce.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2011-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/model/tests/test_domain.py b/src/mailman/model/tests/test_domain.py
index c7c4ba999..9f4c72220 100644
--- a/src/mailman/model/tests/test_domain.py
+++ b/src/mailman/model/tests/test_domain.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2011-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/model/tests/test_listmanager.py b/src/mailman/model/tests/test_listmanager.py
index 5e4a38438..2022ce738 100644
--- a/src/mailman/model/tests/test_listmanager.py
+++ b/src/mailman/model/tests/test_listmanager.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2011-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/model/tests/test_member.py b/src/mailman/model/tests/test_member.py
index c45bcf396..f1c9e9f65 100644
--- a/src/mailman/model/tests/test_member.py
+++ b/src/mailman/model/tests/test_member.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2011-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/model/tests/test_uid.py b/src/mailman/model/tests/test_uid.py
index bd4faf94f..9f5d31736 100644
--- a/src/mailman/model/tests/test_uid.py
+++ b/src/mailman/model/tests/test_uid.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2011-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/model/tests/test_user.py b/src/mailman/model/tests/test_user.py
index caaf9faa3..c4c07ed22 100644
--- a/src/mailman/model/tests/test_user.py
+++ b/src/mailman/model/tests/test_user.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2011-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/model/uid.py b/src/mailman/model/uid.py
index df99f497a..c3564aa40 100644
--- a/src/mailman/model/uid.py
+++ b/src/mailman/model/uid.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2011-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/model/user.py b/src/mailman/model/user.py
index 53c96c3a2..d1f59f957 100644
--- a/src/mailman/model/user.py
+++ b/src/mailman/model/user.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/model/usermanager.py b/src/mailman/model/usermanager.py
index fc1830b70..2996b6fa4 100644
--- a/src/mailman/model/usermanager.py
+++ b/src/mailman/model/usermanager.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/model/version.py b/src/mailman/model/version.py
index 418018ac3..8d198a670 100644
--- a/src/mailman/model/version.py
+++ b/src/mailman/model/version.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/mta/aliases.py b/src/mailman/mta/aliases.py
index aad8e8c1f..573160d3c 100644
--- a/src/mailman/mta/aliases.py
+++ b/src/mailman/mta/aliases.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2011-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/mta/base.py b/src/mailman/mta/base.py
index e90fbcf8f..375d79fb8 100644
--- a/src/mailman/mta/base.py
+++ b/src/mailman/mta/base.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/mta/bulk.py b/src/mailman/mta/bulk.py
index 9c8380277..8e9f896fd 100644
--- a/src/mailman/mta/bulk.py
+++ b/src/mailman/mta/bulk.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/mta/connection.py b/src/mailman/mta/connection.py
index 369e43570..5c3c51f8a 100644
--- a/src/mailman/mta/connection.py
+++ b/src/mailman/mta/connection.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/mta/decorating.py b/src/mailman/mta/decorating.py
index d8fa6be86..eca7c0b34 100644
--- a/src/mailman/mta/decorating.py
+++ b/src/mailman/mta/decorating.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/mta/deliver.py b/src/mailman/mta/deliver.py
index 1d7f727ae..a3e085486 100644
--- a/src/mailman/mta/deliver.py
+++ b/src/mailman/mta/deliver.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/mta/null.py b/src/mailman/mta/null.py
index c69fb3207..6b2f76a1c 100644
--- a/src/mailman/mta/null.py
+++ b/src/mailman/mta/null.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2001-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/mta/personalized.py b/src/mailman/mta/personalized.py
index bb45760e6..a0b0d4b76 100644
--- a/src/mailman/mta/personalized.py
+++ b/src/mailman/mta/personalized.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/mta/postfix.py b/src/mailman/mta/postfix.py
index 004e4c214..2501dc0de 100644
--- a/src/mailman/mta/postfix.py
+++ b/src/mailman/mta/postfix.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2001-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/mta/tests/test_aliases.py b/src/mailman/mta/tests/test_aliases.py
index c2f8a2087..4c58cbba5 100644
--- a/src/mailman/mta/tests/test_aliases.py
+++ b/src/mailman/mta/tests/test_aliases.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2011-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/mta/verp.py b/src/mailman/mta/verp.py
index 4252f74d2..ee641cb42 100644
--- a/src/mailman/mta/verp.py
+++ b/src/mailman/mta/verp.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/options.py b/src/mailman/options.py
index 3d1119ff6..977d0f0e8 100644
--- a/src/mailman/options.py
+++ b/src/mailman/options.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2008-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/pipeline/acknowledge.py b/src/mailman/pipeline/acknowledge.py
index cf52eb73f..8a0088ce4 100644
--- a/src/mailman/pipeline/acknowledge.py
+++ b/src/mailman/pipeline/acknowledge.py
@@ -1,4 +1,4 @@
-# Copyright (C) 1998-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 1998-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/pipeline/after_delivery.py b/src/mailman/pipeline/after_delivery.py
index 5b447e919..46007092b 100644
--- a/src/mailman/pipeline/after_delivery.py
+++ b/src/mailman/pipeline/after_delivery.py
@@ -1,4 +1,4 @@
-# Copyright (C) 1998-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 1998-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/pipeline/avoid_duplicates.py b/src/mailman/pipeline/avoid_duplicates.py
index ff30e2770..ffbc80c85 100644
--- a/src/mailman/pipeline/avoid_duplicates.py
+++ b/src/mailman/pipeline/avoid_duplicates.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2002-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/pipeline/calculate_recipients.py b/src/mailman/pipeline/calculate_recipients.py
index fb866b042..6118a4561 100644
--- a/src/mailman/pipeline/calculate_recipients.py
+++ b/src/mailman/pipeline/calculate_recipients.py
@@ -1,4 +1,4 @@
-# Copyright (C) 1998-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 1998-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/pipeline/cleanse.py b/src/mailman/pipeline/cleanse.py
index 7bf8512ac..90f2a892a 100644
--- a/src/mailman/pipeline/cleanse.py
+++ b/src/mailman/pipeline/cleanse.py
@@ -1,4 +1,4 @@
-# Copyright (C) 1998-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 1998-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/pipeline/cleanse_dkim.py b/src/mailman/pipeline/cleanse_dkim.py
index 5a64d7fb7..d2cd32636 100644
--- a/src/mailman/pipeline/cleanse_dkim.py
+++ b/src/mailman/pipeline/cleanse_dkim.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2006-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/pipeline/cook_headers.py b/src/mailman/pipeline/cook_headers.py
index 0afa52b0c..2d117429c 100644
--- a/src/mailman/pipeline/cook_headers.py
+++ b/src/mailman/pipeline/cook_headers.py
@@ -1,4 +1,4 @@
-# Copyright (C) 1998-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 1998-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/pipeline/decorate.py b/src/mailman/pipeline/decorate.py
index ea62591d6..e7d011f84 100644
--- a/src/mailman/pipeline/decorate.py
+++ b/src/mailman/pipeline/decorate.py
@@ -1,4 +1,4 @@
-# Copyright (C) 1998-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 1998-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/pipeline/file_recipients.py b/src/mailman/pipeline/file_recipients.py
index 21b7a5929..d087ff2bb 100644
--- a/src/mailman/pipeline/file_recipients.py
+++ b/src/mailman/pipeline/file_recipients.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2001-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/pipeline/mime_delete.py b/src/mailman/pipeline/mime_delete.py
index 381514795..402d13714 100644
--- a/src/mailman/pipeline/mime_delete.py
+++ b/src/mailman/pipeline/mime_delete.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2002-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/pipeline/owner_recipients.py b/src/mailman/pipeline/owner_recipients.py
index e0b72944f..9e4bbf174 100644
--- a/src/mailman/pipeline/owner_recipients.py
+++ b/src/mailman/pipeline/owner_recipients.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2001-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/pipeline/replybot.py b/src/mailman/pipeline/replybot.py
index 30980b008..fc58792e8 100644
--- a/src/mailman/pipeline/replybot.py
+++ b/src/mailman/pipeline/replybot.py
@@ -1,4 +1,4 @@
-# Copyright (C) 1998-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 1998-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/pipeline/rfc_2369.py b/src/mailman/pipeline/rfc_2369.py
index d29edcdbc..aa99b5c14 100644
--- a/src/mailman/pipeline/rfc_2369.py
+++ b/src/mailman/pipeline/rfc_2369.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2011-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/pipeline/scrubber.py b/src/mailman/pipeline/scrubber.py
index f25c2978c..754d81f18 100644
--- a/src/mailman/pipeline/scrubber.py
+++ b/src/mailman/pipeline/scrubber.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2001-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/pipeline/tagger.py b/src/mailman/pipeline/tagger.py
index eb6a6265a..49e004a12 100644
--- a/src/mailman/pipeline/tagger.py
+++ b/src/mailman/pipeline/tagger.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2001-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/pipeline/to_archive.py b/src/mailman/pipeline/to_archive.py
index de6144a62..fd5259a14 100644
--- a/src/mailman/pipeline/to_archive.py
+++ b/src/mailman/pipeline/to_archive.py
@@ -1,4 +1,4 @@
-# Copyright (C) 1998-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 1998-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/pipeline/to_digest.py b/src/mailman/pipeline/to_digest.py
index 69ff97b81..698f16e1e 100644
--- a/src/mailman/pipeline/to_digest.py
+++ b/src/mailman/pipeline/to_digest.py
@@ -1,4 +1,4 @@
-# Copyright (C) 1998-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 1998-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/pipeline/to_outgoing.py b/src/mailman/pipeline/to_outgoing.py
index 362c49458..971f87757 100644
--- a/src/mailman/pipeline/to_outgoing.py
+++ b/src/mailman/pipeline/to_outgoing.py
@@ -1,4 +1,4 @@
-# Copyright (C) 1998-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 1998-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/pipeline/to_usenet.py b/src/mailman/pipeline/to_usenet.py
index b5e706abe..26a383c64 100644
--- a/src/mailman/pipeline/to_usenet.py
+++ b/src/mailman/pipeline/to_usenet.py
@@ -1,4 +1,4 @@
-# Copyright (C) 1998-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 1998-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/rest/addresses.py b/src/mailman/rest/addresses.py
index d0b0fa1c9..8872f6ca8 100644
--- a/src/mailman/rest/addresses.py
+++ b/src/mailman/rest/addresses.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2011-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/rest/configuration.py b/src/mailman/rest/configuration.py
index 95b8a93f0..4bff37d83 100644
--- a/src/mailman/rest/configuration.py
+++ b/src/mailman/rest/configuration.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2010-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/rest/docs/__init__.py b/src/mailman/rest/docs/__init__.py
index 7688d7c1b..86816216c 100644
--- a/src/mailman/rest/docs/__init__.py
+++ b/src/mailman/rest/docs/__init__.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/rest/docs/users.rst b/src/mailman/rest/docs/users.rst
index 43df35b94..145b069d9 100644
--- a/src/mailman/rest/docs/users.rst
+++ b/src/mailman/rest/docs/users.rst
@@ -66,7 +66,7 @@ Creating users via the API
==========================
New users can be created through the REST API. To do so requires the initial
-email address for the user, and optionally the user's full name and password.
+email address for the user, a password, and optionally the user's full name.
::
>>> transaction.abort()
diff --git a/src/mailman/rest/domains.py b/src/mailman/rest/domains.py
index da353ca58..30b1077b2 100644
--- a/src/mailman/rest/domains.py
+++ b/src/mailman/rest/domains.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2010-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/rest/helpers.py b/src/mailman/rest/helpers.py
index 7257a78fa..2ce62b0fe 100644
--- a/src/mailman/rest/helpers.py
+++ b/src/mailman/rest/helpers.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2010-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/rest/lists.py b/src/mailman/rest/lists.py
index 32aa607b6..9d3865d00 100644
--- a/src/mailman/rest/lists.py
+++ b/src/mailman/rest/lists.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2010-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/rest/members.py b/src/mailman/rest/members.py
index bf739ed32..d55aa7dc2 100644
--- a/src/mailman/rest/members.py
+++ b/src/mailman/rest/members.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2010-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/rest/preferences.py b/src/mailman/rest/preferences.py
index d231d1055..be598458e 100644
--- a/src/mailman/rest/preferences.py
+++ b/src/mailman/rest/preferences.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2011-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/rest/root.py b/src/mailman/rest/root.py
index 9ba6ad20d..794d7510f 100644
--- a/src/mailman/rest/root.py
+++ b/src/mailman/rest/root.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2010-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/rest/tests/test_addresses.py b/src/mailman/rest/tests/test_addresses.py
index d0ed70de2..f4e7cab62 100644
--- a/src/mailman/rest/tests/test_addresses.py
+++ b/src/mailman/rest/tests/test_addresses.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2011-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/rest/tests/test_domains.py b/src/mailman/rest/tests/test_domains.py
index 0709a6544..89cc34630 100644
--- a/src/mailman/rest/tests/test_domains.py
+++ b/src/mailman/rest/tests/test_domains.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2011-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/rest/tests/test_lists.py b/src/mailman/rest/tests/test_lists.py
index b34ebf916..78b793c6c 100644
--- a/src/mailman/rest/tests/test_lists.py
+++ b/src/mailman/rest/tests/test_lists.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2011-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/rest/tests/test_membership.py b/src/mailman/rest/tests/test_membership.py
index a610b152a..568a56306 100644
--- a/src/mailman/rest/tests/test_membership.py
+++ b/src/mailman/rest/tests/test_membership.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2011-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/rest/tests/test_root.py b/src/mailman/rest/tests/test_root.py
index a6a3c33ba..90d30bd80 100644
--- a/src/mailman/rest/tests/test_root.py
+++ b/src/mailman/rest/tests/test_root.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2011-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/rest/tests/test_users.py b/src/mailman/rest/tests/test_users.py
index 2f2664b3b..3c1c40fd3 100644
--- a/src/mailman/rest/tests/test_users.py
+++ b/src/mailman/rest/tests/test_users.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2011-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/rest/users.py b/src/mailman/rest/users.py
index 857d29471..0a1503930 100644
--- a/src/mailman/rest/users.py
+++ b/src/mailman/rest/users.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2011-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
@@ -26,18 +26,18 @@ __all__ = [
]
+from flufl.password import lookup, make_secret, generate
from restish import http, resource
from uuid import UUID
from zope.component import getUtility
+from mailman.config import config
from mailman.interfaces.address import ExistingAddressError
from mailman.interfaces.usermanager import IUserManager
from mailman.rest.addresses import UserAddresses
from mailman.rest.helpers import CollectionMixin, etag, no_content, path_to
from mailman.rest.preferences import Preferences
from mailman.rest.validator import Validator
-from mailman.utilities.passwords import (
- encrypt_password, make_user_friendly_password)
@@ -101,8 +101,9 @@ class AllUsers(_UserBase):
error.email))
if password is None:
# This will have to be reset since it cannot be retrieved.
- password = make_user_friendly_password()
- user.password = encrypt_password(password)
+ password = generate(int(config.passwords.password_length))
+ scheme = lookup(config.passwords.password_scheme.upper())
+ user.password = make_secret(password, scheme)
location = path_to('users/{0}'.format(user.user_id.int))
return http.created(location, [], None)
diff --git a/src/mailman/rest/validator.py b/src/mailman/rest/validator.py
index 60d8a22d6..7484aa260 100644
--- a/src/mailman/rest/validator.py
+++ b/src/mailman/rest/validator.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2010-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/rest/wsgiapp.py b/src/mailman/rest/wsgiapp.py
index 48a749726..36e8ae5ac 100644
--- a/src/mailman/rest/wsgiapp.py
+++ b/src/mailman/rest/wsgiapp.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2010-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/rules/administrivia.py b/src/mailman/rules/administrivia.py
index a390e29b0..790c16c19 100644
--- a/src/mailman/rules/administrivia.py
+++ b/src/mailman/rules/administrivia.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/rules/any.py b/src/mailman/rules/any.py
index 0275c2928..fa42b64cc 100644
--- a/src/mailman/rules/any.py
+++ b/src/mailman/rules/any.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/rules/approved.py b/src/mailman/rules/approved.py
index 51314cc02..8981f9030 100644
--- a/src/mailman/rules/approved.py
+++ b/src/mailman/rules/approved.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/rules/emergency.py b/src/mailman/rules/emergency.py
index b7807e5e8..7b2100875 100644
--- a/src/mailman/rules/emergency.py
+++ b/src/mailman/rules/emergency.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/rules/implicit_dest.py b/src/mailman/rules/implicit_dest.py
index 21f6a5265..321a1775d 100644
--- a/src/mailman/rules/implicit_dest.py
+++ b/src/mailman/rules/implicit_dest.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/rules/loop.py b/src/mailman/rules/loop.py
index c8415da15..9e4aa0061 100644
--- a/src/mailman/rules/loop.py
+++ b/src/mailman/rules/loop.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/rules/max_recipients.py b/src/mailman/rules/max_recipients.py
index 64034b2e5..79396c72f 100644
--- a/src/mailman/rules/max_recipients.py
+++ b/src/mailman/rules/max_recipients.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/rules/max_size.py b/src/mailman/rules/max_size.py
index 833d2cadb..420d63571 100644
--- a/src/mailman/rules/max_size.py
+++ b/src/mailman/rules/max_size.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/rules/moderation.py b/src/mailman/rules/moderation.py
index 5377b14a2..bcec47cba 100644
--- a/src/mailman/rules/moderation.py
+++ b/src/mailman/rules/moderation.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/rules/news_moderation.py b/src/mailman/rules/news_moderation.py
index 2d752f38f..4ca9a0d8a 100644
--- a/src/mailman/rules/news_moderation.py
+++ b/src/mailman/rules/news_moderation.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/rules/no_subject.py b/src/mailman/rules/no_subject.py
index 44c43e976..1a2bab1d5 100644
--- a/src/mailman/rules/no_subject.py
+++ b/src/mailman/rules/no_subject.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/rules/suspicious.py b/src/mailman/rules/suspicious.py
index 675e5636d..a06a2d0aa 100644
--- a/src/mailman/rules/suspicious.py
+++ b/src/mailman/rules/suspicious.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/rules/truth.py b/src/mailman/rules/truth.py
index 96e5f6fa2..20c152e4d 100644
--- a/src/mailman/rules/truth.py
+++ b/src/mailman/rules/truth.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2008-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/runners/archive.py b/src/mailman/runners/archive.py
index 1aa54d17c..cab776076 100644
--- a/src/mailman/runners/archive.py
+++ b/src/mailman/runners/archive.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2000-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2000-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/runners/bounce.py b/src/mailman/runners/bounce.py
index da20f4a33..33bba73ce 100644
--- a/src/mailman/runners/bounce.py
+++ b/src/mailman/runners/bounce.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2001-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
@@ -70,9 +70,18 @@ class BounceRunner(Runner):
# done.s
addresses = scan_message(msg)
# If that still didn't return us any useful addresses, then send it on
- # or discard it.
+ # or discard it. The addresses will come back from flufl.bounce as
+ # bytes/8-bit strings, but we must store them as unicodes in the
+ # database. Assume utf-8 encoding, but be cautious.
if len(addresses) > 0:
for address in addresses:
+ if isinstance(address, bytes):
+ try:
+ address = address.decode('utf-8')
+ except UnicodeError:
+ log.exception('Ignoring non-UTF-8 encoded '
+ 'address: {0}'.format(address))
+ continue
self._processor.register(mlist, address, msg, context)
else:
log.info('Bounce message w/no discernable addresses: %s',
diff --git a/src/mailman/runners/command.py b/src/mailman/runners/command.py
index 1c58fdccf..33e320bff 100644
--- a/src/mailman/runners/command.py
+++ b/src/mailman/runners/command.py
@@ -1,4 +1,4 @@
-# Copyright (C) 1998-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 1998-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/runners/digest.py b/src/mailman/runners/digest.py
index 9745100cb..82895be98 100644
--- a/src/mailman/runners/digest.py
+++ b/src/mailman/runners/digest.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/runners/incoming.py b/src/mailman/runners/incoming.py
index 0ac907988..c306ddcf1 100644
--- a/src/mailman/runners/incoming.py
+++ b/src/mailman/runners/incoming.py
@@ -1,4 +1,4 @@
-# Copyright (C) 1998-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 1998-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/runners/lmtp.py b/src/mailman/runners/lmtp.py
index 30d120d48..483b63049 100644
--- a/src/mailman/runners/lmtp.py
+++ b/src/mailman/runners/lmtp.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2006-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/runners/maildir.py b/src/mailman/runners/maildir.py
index f9e0f41a9..2d3a49285 100644
--- a/src/mailman/runners/maildir.py
+++ b/src/mailman/runners/maildir.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2002-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/runners/news.py b/src/mailman/runners/news.py
index 11d3dca7a..e3c6f060d 100644
--- a/src/mailman/runners/news.py
+++ b/src/mailman/runners/news.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2000-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2000-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/runners/outgoing.py b/src/mailman/runners/outgoing.py
index 1ce668391..4bba2368e 100644
--- a/src/mailman/runners/outgoing.py
+++ b/src/mailman/runners/outgoing.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2000-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2000-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/runners/pipeline.py b/src/mailman/runners/pipeline.py
index b088325b4..93e4fb98b 100644
--- a/src/mailman/runners/pipeline.py
+++ b/src/mailman/runners/pipeline.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2008-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/runners/rest.py b/src/mailman/runners/rest.py
index cc55001c7..fcfc432ac 100644
--- a/src/mailman/runners/rest.py
+++ b/src/mailman/runners/rest.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/runners/retry.py b/src/mailman/runners/retry.py
index d45e06bcc..b4fd6fc5d 100644
--- a/src/mailman/runners/retry.py
+++ b/src/mailman/runners/retry.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2003-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/runners/tests/test_bounce.py b/src/mailman/runners/tests/test_bounce.py
index 90fd012f7..76eb65c1f 100644
--- a/src/mailman/runners/tests/test_bounce.py
+++ b/src/mailman/runners/tests/test_bounce.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2011-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/runners/tests/test_outgoing.py b/src/mailman/runners/tests/test_outgoing.py
index 41ba1a106..3cbab101c 100644
--- a/src/mailman/runners/tests/test_outgoing.py
+++ b/src/mailman/runners/tests/test_outgoing.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2011-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/runners/tests/test_retry.py b/src/mailman/runners/tests/test_retry.py
index ce075632c..3785cb28a 100644
--- a/src/mailman/runners/tests/test_retry.py
+++ b/src/mailman/runners/tests/test_retry.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2011-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/runners/virgin.py b/src/mailman/runners/virgin.py
index 917e6f5dc..7f0e6897f 100644
--- a/src/mailman/runners/virgin.py
+++ b/src/mailman/runners/virgin.py
@@ -1,4 +1,4 @@
-# Copyright (C) 1998-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 1998-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/styles/default.py b/src/mailman/styles/default.py
index 134930d0a..be5f89000 100644
--- a/src/mailman/styles/default.py
+++ b/src/mailman/styles/default.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/styles/manager.py b/src/mailman/styles/manager.py
index 6cff32f9e..f1d3f1dfb 100644
--- a/src/mailman/styles/manager.py
+++ b/src/mailman/styles/manager.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/testing/__init__.py b/src/mailman/testing/__init__.py
index 84182e1f1..a4817ae44 100644
--- a/src/mailman/testing/__init__.py
+++ b/src/mailman/testing/__init__.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2011-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/testing/i18n.py b/src/mailman/testing/i18n.py
index 2f856a3d5..fb4728382 100644
--- a/src/mailman/testing/i18n.py
+++ b/src/mailman/testing/i18n.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/testing/layers.py b/src/mailman/testing/layers.py
index f1809451d..5cee8c8d2 100644
--- a/src/mailman/testing/layers.py
+++ b/src/mailman/testing/layers.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2008-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/testing/mailman-xx.po b/src/mailman/testing/mailman-xx.po
index 61cdd1a9f..e2ad28c33 100644
--- a/src/mailman/testing/mailman-xx.po
+++ b/src/mailman/testing/mailman-xx.po
@@ -1,5 +1,5 @@
# Test catalog for Freedonia (xx)
-# Copyright (C) 2011 Free Software Foundation, Inc.xsy
+# Copyright (C) 2011-2012 by the Free Software Foundation, Inc.
msgid ""
msgstr ""
"Project-Id-Version: mailman\n"
diff --git a/src/mailman/testing/mta.py b/src/mailman/testing/mta.py
index 741c0e607..4699cb882 100644
--- a/src/mailman/testing/mta.py
+++ b/src/mailman/testing/mta.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/testing/testing.cfg b/src/mailman/testing/testing.cfg
index b102e6f41..89d986a7c 100644
--- a/src/mailman/testing/testing.cfg
+++ b/src/mailman/testing/testing.cfg
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2008-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/tests/test_configfile.py b/src/mailman/tests/test_configfile.py
index d19b7b73c..ce996e061 100644
--- a/src/mailman/tests/test_configfile.py
+++ b/src/mailman/tests/test_configfile.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/tests/test_documentation.py b/src/mailman/tests/test_documentation.py
index c47e894c9..f459f3a92 100644
--- a/src/mailman/tests/test_documentation.py
+++ b/src/mailman/tests/test_documentation.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2007-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/utilities/datetime.py b/src/mailman/utilities/datetime.py
index 1ee727da4..96d14fce5 100644
--- a/src/mailman/utilities/datetime.py
+++ b/src/mailman/utilities/datetime.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/utilities/email.py b/src/mailman/utilities/email.py
index 324b6b134..4b1023ce1 100644
--- a/src/mailman/utilities/email.py
+++ b/src/mailman/utilities/email.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/utilities/filesystem.py b/src/mailman/utilities/filesystem.py
index 0234f2def..48a834f0c 100644
--- a/src/mailman/utilities/filesystem.py
+++ b/src/mailman/utilities/filesystem.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/utilities/i18n.py b/src/mailman/utilities/i18n.py
index 1aede4ebe..e2d14390a 100644
--- a/src/mailman/utilities/i18n.py
+++ b/src/mailman/utilities/i18n.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2011-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/utilities/importer.py b/src/mailman/utilities/importer.py
index 6ee538554..d31a3892f 100644
--- a/src/mailman/utilities/importer.py
+++ b/src/mailman/utilities/importer.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2010-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/utilities/mailbox.py b/src/mailman/utilities/mailbox.py
index 73f09b633..9419fb60d 100644
--- a/src/mailman/utilities/mailbox.py
+++ b/src/mailman/utilities/mailbox.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/utilities/modules.py b/src/mailman/utilities/modules.py
index b1dd42520..d8b788054 100644
--- a/src/mailman/utilities/modules.py
+++ b/src/mailman/utilities/modules.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/utilities/passwords.py b/src/mailman/utilities/passwords.py
deleted file mode 100644
index f595a3c55..000000000
--- a/src/mailman/utilities/passwords.py
+++ /dev/null
@@ -1,389 +0,0 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
-#
-# This file is part of GNU Mailman.
-#
-# GNU Mailman 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.
-#
-# GNU Mailman 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
-# GNU Mailman. If not, see <http://www.gnu.org/licenses/>.
-
-"""Password hashing and verification schemes.
-
-Represents passwords using RFC 2307 syntax (as best we can tell).
-"""
-
-from __future__ import absolute_import, unicode_literals
-
-__metaclass__ = type
-__all__ = [
- 'Schemes',
- 'check_response',
- 'encrypt_password',
- 'make_secret',
- 'make_user_friendly_password',
- ]
-
-
-import os
-import re
-import hmac
-import random
-import hashlib
-
-from array import array
-from base64 import urlsafe_b64decode as decode
-from base64 import urlsafe_b64encode as encode
-from flufl.enum import Enum
-from itertools import chain, product
-from string import ascii_lowercase
-
-from mailman.config import config
-from mailman.core import errors
-
-SALT_LENGTH = 20 # bytes
-ITERATIONS = 2000
-EMPTYSTRING = ''
-SCHEME_RE = r'{(?P<scheme>[^}]+?)}(?P<rest>.*)'
-
-
-
-class PasswordScheme:
- """Password scheme base class."""
- TAG = b''
-
- @staticmethod
- def make_secret(password):
- """Return the hashed password.
-
- :param password: The clear text password.
- :type password: string
- :return: The encrypted password.
- :rtype: string
- """
- raise NotImplementedError
-
- @staticmethod
- def check_response(challenge, response):
- """Check a response against a challenge.
-
- It is expected that the scheme specifier prefix is already stripped
- from the response string.
-
- :param challenge: The challenge.
- :type challenge: string
- :param response: The response.
- :type response: string
- :return: True if the response matches the challenge.
- :rtype: bool
- """
- raise NotImplementedError
-
-
-
-class NoPasswordScheme(PasswordScheme):
- """A password scheme without passwords."""
-
- TAG = b'NONE'
-
- @staticmethod
- def make_secret(password):
- """See `PasswordScheme`."""
- return b''
-
- @staticmethod
- def check_response(challenge, response):
- """See `PasswordScheme`."""
- return False
-
-
-
-class ClearTextPasswordScheme(PasswordScheme):
- """A password scheme that stores clear text passwords."""
-
- TAG = b'CLEARTEXT'
-
- @staticmethod
- def make_secret(password):
- """See `PasswordScheme`."""
- return password
-
- @staticmethod
- def check_response(challenge, response):
- """See `PasswordScheme`."""
- return challenge == response
-
-
-
-class SHAPasswordScheme(PasswordScheme):
- """A password scheme that encodes the password using SHA1."""
-
- TAG = b'SHA'
-
- @staticmethod
- def make_secret(password):
- """See `PasswordScheme`."""
- h = hashlib.sha1(password)
- return encode(h.digest())
-
- @staticmethod
- def check_response(challenge, response):
- """See `PasswordScheme`."""
- h = hashlib.sha1(response)
- return challenge == encode(h.digest())
-
-
-
-class SSHAPasswordScheme(PasswordScheme):
- """A password scheme that encodes the password using salted SHA1."""
-
- TAG = b'SSHA'
-
- @staticmethod
- def make_secret(password):
- """See `PasswordScheme`."""
- salt = os.urandom(SALT_LENGTH)
- h = hashlib.sha1(password)
- h.update(salt)
- return encode(h.digest() + salt)
-
- @staticmethod
- def check_response(challenge, response):
- """See `PasswordScheme`."""
- # Get the salt from the challenge
- challenge_bytes = decode(challenge)
- digest = challenge_bytes[:20]
- salt = challenge_bytes[20:]
- h = hashlib.sha1(response)
- h.update(salt)
- return digest == h.digest()
-
-
-
-# Basic algorithm given by Bob Fleck
-class PBKDF2PasswordScheme(PasswordScheme):
- """RFC 2989 password encoding scheme."""
-
- # This is a bit nasty if we wanted a different prf or iterations. OTOH,
- # we really have no clue what the standard LDAP-ish specification for
- # those options is.
- TAG = b'PBKDF2 SHA {0}'.format(ITERATIONS)
-
- @staticmethod
- def _pbkdf2(password, salt, iterations):
- """From RFC2898 sec. 5.2. Simplified to handle only 20 byte output
- case. Output of 20 bytes means always exactly one block to handle,
- and a constant block counter appended to the salt in the initial hmac
- update.
- """
- h = hmac.new(password, None, hashlib.sha1)
- prf = h.copy()
- prf.update(salt + b'\x00\x00\x00\x01')
- T = U = array(b'i', prf.digest())
- while iterations:
- prf = h.copy()
- prf.update(U.tostring())
- U = array(b'i', prf.digest())
- T = array(b'i', (t ^ u for t, u in zip(T, U)))
- iterations -= 1
- return T.tostring()
-
- @staticmethod
- def make_secret(password):
- """See `PasswordScheme`.
-
- From RFC2898 sec. 5.2. Simplified to handle only 20 byte output
- case. Output of 20 bytes means always exactly one block to handle,
- and a constant block counter appended to the salt in the initial hmac
- update.
- """
- salt = os.urandom(SALT_LENGTH)
- digest = PBKDF2PasswordScheme._pbkdf2(password, salt, ITERATIONS)
- derived_key = encode(digest + salt)
- return derived_key
-
- @staticmethod
- def check_response(challenge, response, prf, iterations):
- """See `PasswordScheme`."""
- # Decode the challenge to get the number of iterations and salt. We
- # don't support anything but SHA PRF.
- if prf.lower() != b'sha':
- return False
- try:
- iterations = int(iterations)
- except (ValueError, TypeError):
- return False
- challenge_bytes = decode(challenge)
- digest = challenge_bytes[:20]
- salt = challenge_bytes[20:]
- key = PBKDF2PasswordScheme._pbkdf2(response, salt, iterations)
- return digest == key
-
-
-
-class Schemes(Enum):
- """List of password schemes."""
- # no_scheme is deliberately ugly because no one should be using it. Yes,
- # this makes cleartext inconsistent, but that's a common enough
- # terminology to justify the missing underscore.
- no_scheme = 1
- cleartext = 2
- sha = 3
- ssha = 4
- pbkdf2 = 5
-
-
-_SCHEMES_BY_ENUM = {
- Schemes.no_scheme : NoPasswordScheme,
- Schemes.cleartext : ClearTextPasswordScheme,
- Schemes.sha : SHAPasswordScheme,
- Schemes.ssha : SSHAPasswordScheme,
- Schemes.pbkdf2 : PBKDF2PasswordScheme,
- }
-
-
-# Some scheme tags have arguments, but the key for this dictionary should just
-# be the lowercased scheme name.
-_SCHEMES_BY_TAG = dict((_SCHEMES_BY_ENUM[e].TAG.split(' ')[0].lower(), e)
- for e in _SCHEMES_BY_ENUM)
-
-_DEFAULT_SCHEME = NoPasswordScheme
-
-
-
-def make_secret(password, scheme=None):
- """Encrypt a password.
-
- :param password: The clear text password.
- :type password: string
- :param scheme: The password scheme name.
- :type scheme: string
- :return: The encrypted password.
- :rtype: string
- """
- # The hash algorithms operate on bytes not strings. The password argument
- # as provided here by the client will be a string (in Python 2 either
- # unicode or 8-bit, in Python 3 always unicode). We need to encode this
- # string into a byte array, and the way to spell that in Python 2 is to
- # encode the string to utf-8. The returned secret is a string, so it must
- # be a unicode.
- if isinstance(password, unicode):
- password = password.encode('utf-8')
- scheme_class = _SCHEMES_BY_ENUM.get(scheme)
- if not scheme_class:
- raise errors.BadPasswordSchemeError(scheme)
- secret = scheme_class.make_secret(password)
- return b'{{{0}}}{1}'.format(scheme_class.TAG, secret)
-
-
-def check_response(challenge, response):
- """Check a response against a challenge.
-
- :param challenge: The challenge.
- :type challenge: string
- :param response: The response.
- :type response: string
- :return: True if the response matches the challenge.
- :rtype: bool
- """
- mo = re.match(SCHEME_RE, challenge, re.IGNORECASE)
- if not mo:
- return False
- # See above for why we convert here. However because we should have
- # generated the challenge, we assume that it is already a byte string.
- if isinstance(response, unicode):
- response = response.encode('utf-8')
- scheme_group, rest_group = mo.group('scheme', 'rest')
- scheme_parts = scheme_group.split()
- scheme = scheme_parts[0].lower()
- scheme_enum = _SCHEMES_BY_TAG.get(scheme, _DEFAULT_SCHEME)
- scheme_class = _SCHEMES_BY_ENUM[scheme_enum]
- if isinstance(rest_group, unicode):
- rest_group = rest_group.encode('utf-8')
- return scheme_class.check_response(rest_group, response, *scheme_parts[1:])
-
-
-def lookup_scheme(scheme_name):
- """Look up a password scheme.
-
- :param scheme_name: The password scheme name.
- :type scheme_name: string
- :return: Password scheme class.
- :rtype: `PasswordScheme`
- """
- return _SCHEMES_BY_TAG.get(scheme_name.lower())
-
-
-def encrypt_password(password, scheme=None):
- """Return an encrypted password.
-
- If the given password is already encrypted (i.e. it has a scheme prefix),
- then the password is return unchanged. Otherwise, it is encrypted with
- the given scheme or the default scheme.
-
- :param password: The plain text or encrypted password.
- :type password: string
- :param scheme: The scheme enum to use for encryption. If not given, the
- system default scheme is used. This can be a `Schemes` enum item, or
- the scheme name as a string.
- :type scheme: `Schemes` enum, or string.
- :return: The encrypted password.
- :rtype: bytes
- """
- if not isinstance(password, (bytes, unicode)):
- raise ValueError('Got {0}, expected unicode or bytes'.format(
- type(password)))
- if re.match(SCHEME_RE, password, re.IGNORECASE):
- # Just ensure we're getting bytes back.
- if isinstance(password, unicode):
- return password.encode('us-ascii')
- assert isinstance(password, bytes), 'Expected bytes'
- return password
- if scheme is None:
- password_scheme = lookup_scheme(config.passwords.password_scheme)
- elif scheme in Schemes:
- password_scheme = scheme
- else:
- password_scheme = lookup_scheme(scheme)
- if password_scheme is None:
- raise ValueError('Bad password scheme: {0}'.format(scheme))
- return make_secret(password, password_scheme)
-
-
-
-# Password generation.
-
-_vowels = tuple('aeiou')
-_consonants = tuple(c for c in ascii_lowercase if c not in _vowels)
-_syllables = tuple(x + y for (x, y) in
- chain(product(_vowels, _consonants),
- product(_consonants, _vowels)))
-
-
-def make_user_friendly_password(length=None):
- """Make a random *user friendly* password.
-
- Such passwords are nominally easier to pronounce and thus remember. Their
- security in relationship to purely random passwords has not been
- determined.
-
- :param length: Minimum length in characters for the resulting password.
- The password will always be an even number of characters. When
- omitted, the system default length will be used.
- :type length: int
- :return: The user friendly password.
- :rtype: unicode
- """
- if length is None:
- length = int(config.passwords.password_length)
- syllables = []
- while len(syllables) * 2 < length:
- syllables.append(random.choice(_syllables))
- return EMPTYSTRING.join(syllables)[:length]
diff --git a/src/mailman/utilities/string.py b/src/mailman/utilities/string.py
index 9054ed076..c3bd3620c 100644
--- a/src/mailman/utilities/string.py
+++ b/src/mailman/utilities/string.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2009-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/utilities/tests/test_email.py b/src/mailman/utilities/tests/test_email.py
index 8b847f475..833d631b5 100644
--- a/src/mailman/utilities/tests/test_email.py
+++ b/src/mailman/utilities/tests/test_email.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2011-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/utilities/tests/test_import.py b/src/mailman/utilities/tests/test_import.py
index d66faeff0..2ce25ddc6 100644
--- a/src/mailman/utilities/tests/test_import.py
+++ b/src/mailman/utilities/tests/test_import.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2010-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/utilities/tests/test_passwords.py b/src/mailman/utilities/tests/test_passwords.py
deleted file mode 100644
index 058cf97de..000000000
--- a/src/mailman/utilities/tests/test_passwords.py
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright (C) 2007-2011 by the Free Software Foundation, Inc.
-#
-# This file is part of GNU Mailman.
-#
-# GNU Mailman 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.
-#
-# GNU Mailman 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
-# GNU Mailman. If not, see <http://www.gnu.org/licenses/>.
-
-"""Unit tests for the passwords module."""
-
-from __future__ import absolute_import, unicode_literals
-
-__metaclass__ = type
-__all__ = [
- ]
-
-
-import unittest
-
-from itertools import izip_longest
-
-from mailman.config import config
-from mailman.core import errors
-from mailman.testing.layers import ConfigLayer
-from mailman.utilities import passwords
-
-
-
-class PasswordsTestBase:
- scheme = None
-
- def setUp(self):
- # passwords; 8-bit or unicode strings; ascii or binary
- self.pw8a = b'abc'
- self.pw8b = b'abc\xc3\xbf' # 'abc\xff'
- self.pwub = b'abc\xff'
- # bad password; 8-bit or unicode; ascii or binary
- self.bad8a = b'xyz'
- self.bad8b = b'xyz\xc3\xbf' # 'xyz\xff'
- self.badub = b'xyz\xff'
-
- def test_passwords(self):
- unless = self.failUnless
- failif = self.failIf
- secret = passwords.make_secret(self.pw8a, self.scheme)
- unless(passwords.check_response(secret, self.pw8a))
- failif(passwords.check_response(secret, self.bad8a))
-
- def test_passwords_with_funky_chars(self):
- unless = self.failUnless
- failif = self.failIf
- secret = passwords.make_secret(self.pw8b, self.scheme)
- unless(passwords.check_response(secret, self.pw8b))
- failif(passwords.check_response(secret, self.bad8b))
-
- def test_unicode_passwords_with_funky_chars(self):
- unless = self.failUnless
- failif = self.failIf
- secret = passwords.make_secret(self.pwub, self.scheme)
- unless(passwords.check_response(secret, self.pwub))
- failif(passwords.check_response(secret, self.badub))
-
-
-
-class TestBogusPasswords(PasswordsTestBase, unittest.TestCase):
- scheme = -1
-
- def test_passwords(self):
- self.assertRaises(errors.BadPasswordSchemeError,
- passwords.make_secret, self.pw8a, self.scheme)
-
- def test_passwords_with_funky_chars(self):
- self.assertRaises(errors.BadPasswordSchemeError,
- passwords.make_secret, self.pw8b, self.scheme)
-
- def test_unicode_passwords_with_funky_chars(self):
- self.assertRaises(errors.BadPasswordSchemeError,
- passwords.make_secret, self.pwub, self.scheme)
-
-
-
-class TestNonePasswords(PasswordsTestBase, unittest.TestCase):
- scheme = passwords.Schemes.no_scheme
-
- def test_passwords(self):
- failif = self.failIf
- secret = passwords.make_secret(self.pw8a, self.scheme)
- failif(passwords.check_response(secret, self.pw8a))
- failif(passwords.check_response(secret, self.bad8a))
-
- def test_passwords_with_funky_chars(self):
- failif = self.failIf
- secret = passwords.make_secret(self.pw8b, self.scheme)
- failif(passwords.check_response(secret, self.pw8b))
- failif(passwords.check_response(secret, self.bad8b))
-
- def test_unicode_passwords_with_funky_chars(self):
- failif = self.failIf
- secret = passwords.make_secret(self.pwub, self.scheme)
- failif(passwords.check_response(secret, self.pwub))
- failif(passwords.check_response(secret, self.badub))
-
-
-
-class TestCleartextPasswords(PasswordsTestBase, unittest.TestCase):
- scheme = passwords.Schemes.cleartext
-
-
-class TestSHAPasswords(PasswordsTestBase, unittest.TestCase):
- scheme = passwords.Schemes.sha
-
-
-class TestSSHAPasswords(PasswordsTestBase, unittest.TestCase):
- scheme = passwords.Schemes.ssha
-
-
-class TestPBKDF2Passwords(PasswordsTestBase, unittest.TestCase):
- scheme = passwords.Schemes.pbkdf2
-
-
-
-class TestSchemeLookup(unittest.TestCase):
- def test_scheme_name_lookup(self):
- unless = self.failUnless
- unless(passwords.lookup_scheme('NONE') is passwords.Schemes.no_scheme)
- unless(passwords.lookup_scheme('CLEARTEXT') is
- passwords.Schemes.cleartext)
- unless(passwords.lookup_scheme('SHA') is passwords.Schemes.sha)
- unless(passwords.lookup_scheme('SSHA') is passwords.Schemes.ssha)
- unless(passwords.lookup_scheme('PBKDF2') is passwords.Schemes.pbkdf2)
- unless(passwords.lookup_scheme(' -bogus- ') is None)
-
-
-
-# See itertools doc page examples.
-def _grouper(seq):
- args = [iter(seq)] * 2
- return list(izip_longest(*args))
-
-
-class TestPasswordGeneration(unittest.TestCase):
- layer = ConfigLayer
-
- def test_default_user_friendly_password_length(self):
- self.assertEqual(len(passwords.make_user_friendly_password()),
- int(config.passwords.password_length))
-
- def test_provided_user_friendly_password_length(self):
- self.assertEqual(len(passwords.make_user_friendly_password(12)), 12)
-
- def test_provided_odd_user_friendly_password_length(self):
- self.assertEqual(len(passwords.make_user_friendly_password(15)), 15)
-
- def test_user_friendly_password(self):
- password = passwords.make_user_friendly_password()
- for pair in _grouper(password):
- # There will always be one vowel and one non-vowel.
- vowel = (pair[0] if pair[0] in 'aeiou' else pair[1])
- consonant = (pair[0] if pair[0] not in 'aeiou' else pair[1])
- self.assertTrue(vowel in 'aeiou', vowel)
- self.assertTrue(consonant not in 'aeiou', consonant)
-
- def test_encrypt_password_plaintext_default_scheme(self):
- # Test that a plain text password gets encrypted.
- self.assertEqual(passwords.encrypt_password('abc'),
- '{CLEARTEXT}abc')
-
- def test_encrypt_password_plaintext(self):
- # Test that a plain text password gets encrypted with the given scheme.
- scheme = passwords.Schemes.sha
- self.assertEqual(passwords.encrypt_password('abc', scheme),
- '{SHA}qZk-NkcGgWq6PiVxeFDCbJzQ2J0=')
-
- def test_encrypt_password_plaintext_by_scheme_name(self):
- # Test that a plain text password gets encrypted with the given
- # scheme, which is given by name.
- self.assertEqual(passwords.encrypt_password('abc', 'cleartext'),
- '{CLEARTEXT}abc')
-
- def test_encrypt_password_already_encrypted_default_scheme(self):
- # Test that a password which is already encrypted is return unchanged.
- self.assertEqual(passwords.encrypt_password('{SHA}abc'), '{SHA}abc')
-
- def test_encrypt_password_already_encrypted(self):
- # Test that a password which is already encrypted is return unchanged,
- # ignoring any requested scheme.
- scheme = passwords.Schemes.cleartext
- self.assertEqual(passwords.encrypt_password('{SHA}abc', scheme),
- '{SHA}abc')
-
- def test_encrypt_password_password_value_error(self):
- self.assertRaises(ValueError, passwords.encrypt_password, 7)
-
- def test_encrypt_password_scheme_value_error(self):
- self.assertRaises(ValueError, passwords.encrypt_password, 'abc', 'foo')
diff --git a/src/mailman/utilities/tests/test_templates.py b/src/mailman/utilities/tests/test_templates.py
index 504972da3..1b2f1db07 100644
--- a/src/mailman/utilities/tests/test_templates.py
+++ b/src/mailman/utilities/tests/test_templates.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2011-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/utilities/tests/test_wrap.py b/src/mailman/utilities/tests/test_wrap.py
index 5ef658e14..a2cf55236 100644
--- a/src/mailman/utilities/tests/test_wrap.py
+++ b/src/mailman/utilities/tests/test_wrap.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2011-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/utilities/uid.py b/src/mailman/utilities/uid.py
index dfbff0ae6..a0370788e 100644
--- a/src/mailman/utilities/uid.py
+++ b/src/mailman/utilities/uid.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011 by the Free Software Foundation, Inc.
+# Copyright (C) 2011-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#
diff --git a/src/mailman/version.py b/src/mailman/version.py
index 658942e36..079f3dd8d 100644
--- a/src/mailman/version.py
+++ b/src/mailman/version.py
@@ -1,4 +1,4 @@
-# Copyright (C) 1998-2011 by the Free Software Foundation, Inc.
+# Copyright (C) 1998-2012 by the Free Software Foundation, Inc.
#
# This file is part of GNU Mailman.
#