summaryrefslogtreecommitdiff
path: root/src/mailman/app
diff options
context:
space:
mode:
Diffstat (limited to 'src/mailman/app')
-rw-r--r--src/mailman/app/events.py11
-rw-r--r--src/mailman/app/membership.py7
-rw-r--r--src/mailman/app/subscriptions.py2
-rw-r--r--src/mailman/app/tests/test_membership.py20
4 files changed, 15 insertions, 25 deletions
diff --git a/src/mailman/app/events.py b/src/mailman/app/events.py
index 79376cca1..a4f385239 100644
--- a/src/mailman/app/events.py
+++ b/src/mailman/app/events.py
@@ -28,13 +28,22 @@ __all__ = [
from zope import event
from mailman.app import domain, moderator, subscriptions
+from mailman.core import i18n, switchboard
+from mailman.languages import manager as language_manager
+from mailman.styles import manager as style_manager
+from mailman.utilities import passwords
def initialize():
"""Initialize global event subscribers."""
event.subscribers.extend([
+ domain.handle_DomainDeletingEvent,
moderator.handle_ListDeletingEvent,
+ passwords.handle_ConfigurationUpdatedEvent,
subscriptions.handle_ListDeletedEvent,
- domain.handle_DomainDeletingEvent,
+ switchboard.handle_ConfigurationUpdatedEvent,
+ i18n.handle_ConfigurationUpdatedEvent,
+ style_manager.handle_ConfigurationUpdatedEvent,
+ language_manager.handle_ConfigurationUpdatedEvent,
])
diff --git a/src/mailman/app/membership.py b/src/mailman/app/membership.py
index e31a1695c..c73735b35 100644
--- a/src/mailman/app/membership.py
+++ b/src/mailman/app/membership.py
@@ -27,7 +27,6 @@ __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
@@ -96,10 +95,8 @@ def add_member(mlist, email, display_name, password, delivery_mode, language,
user.display_name = (
display_name if display_name else address.display_name)
user.link(address)
- # Encrypt the password using the currently selected scheme. The
- # scheme is recorded in the hashed password string.
- scheme = lookup(config.passwords.password_scheme.upper())
- user.password = make_secret(password, scheme)
+ # Encrypt the password using the currently selected hash scheme.
+ user.password = config.password_context.encrypt(password)
user.preferences.preferred_language = language
member = mlist.subscribe(address, role)
member.preferences.delivery_mode = delivery_mode
diff --git a/src/mailman/app/subscriptions.py b/src/mailman/app/subscriptions.py
index ebbe14492..7949f83ee 100644
--- a/src/mailman/app/subscriptions.py
+++ b/src/mailman/app/subscriptions.py
@@ -26,8 +26,8 @@ __all__ = [
]
-from flufl.password import generate
from operator import attrgetter
+from passlib.utils import generate_password as generate
from storm.expr import And, Or
from uuid import UUID
from zope.component import getUtility
diff --git a/src/mailman/app/tests/test_membership.py b/src/mailman/app/tests/test_membership.py
index 74e15d0e2..626be8b08 100644
--- a/src/mailman/app/tests/test_membership.py
+++ b/src/mailman/app/tests/test_membership.py
@@ -30,13 +30,11 @@ from zope.component import getUtility
from mailman.app.lifecycle import create_list
from mailman.app.membership import add_member
-from mailman.config import config
from mailman.core.constants import system_preferences
from mailman.interfaces.bans import IBanManager
from mailman.interfaces.member import (
AlreadySubscribedError, DeliveryMode, MemberRole, MembershipIsBannedError)
from mailman.interfaces.usermanager import IUserManager
-from mailman.testing.helpers import reset_the_world
from mailman.testing.layers import ConfigLayer
@@ -47,9 +45,6 @@ class AddMemberTest(unittest.TestCase):
def setUp(self):
self._mlist = create_list('test@example.com')
- def tearDown(self):
- reset_the_world()
-
def test_add_member_new_user(self):
# Test subscribing a user to a mailing list when the email address has
# not yet been associated with a user.
@@ -134,7 +129,7 @@ class AddMemberTest(unittest.TestCase):
self.assertEqual(member.address.email, 'aperson@example.com')
self.assertEqual(member.mailing_list, 'test@example.com')
self.assertEqual(member.role, MemberRole.moderator)
-
+
def test_add_member_twice(self):
# Adding a member with the same role twice causes an
# AlreadySubscribedError to be raised.
@@ -178,21 +173,10 @@ class AddMemberPasswordTest(unittest.TestCase):
def setUp(self):
self._mlist = create_list('test@example.com')
- # The default ssha scheme introduces a random salt, which is
- # inappropriate for unit tests.
- config.push('password scheme', """
- [passwords]
- password_scheme: sha
- """)
-
- def tearDown(self):
- config.pop('password scheme')
- reset_the_world()
def test_add_member_password(self):
# Test that the password stored with the new user is encrypted.
member = add_member(self._mlist, 'anne@example.com',
'Anne Person', 'abc', DeliveryMode.regular,
system_preferences.preferred_language)
- self.assertEqual(
- member.user.password, '{SHA}qZk-NkcGgWq6PiVxeFDCbJzQ2J0=')
+ self.assertEqual(member.user.password, '{plaintext}abc')