summaryrefslogtreecommitdiff
path: root/src/mailman/app/membership.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/mailman/app/membership.py')
-rw-r--r--src/mailman/app/membership.py10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/mailman/app/membership.py b/src/mailman/app/membership.py
index fcbedc2f5..56df18269 100644
--- a/src/mailman/app/membership.py
+++ b/src/mailman/app/membership.py
@@ -30,6 +30,7 @@ from email.utils import formataddr
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
@@ -39,6 +40,7 @@ from mailman.interfaces.member import (
NotAMemberError)
from mailman.interfaces.usermanager import IUserManager
from mailman.utilities.i18n import make
+from mailman.utilities.passwords import lookup_scheme, make_secret
@@ -94,9 +96,11 @@ def add_member(mlist, email, realname, password, delivery_mode, language):
user = user_manager.create_user()
user.real_name = (realname if realname else address.real_name)
user.link(address)
- # Since created the user, then the member, and set preferences on the
- # appropriate object.
- user.password = password
+ # Encrypt the password using the currently selected scheme. The
+ # scheme is recorded in the hashed password string.
+ user.password = make_secret(
+ password,
+ lookup_scheme(config.passwords.password_scheme))
user.preferences.preferred_language = language
member = address.subscribe(mlist, MemberRole.member)
member.preferences.delivery_mode = delivery_mode