diff options
Diffstat (limited to 'src/mailman/app/membership.py')
| -rw-r--r-- | src/mailman/app/membership.py | 10 |
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 |
