Django-allauth compatibility (ACCOUNT_AUTHENTICATION_METHOD and ACCOUNT_EMAIL_REQUIRED)

Hi,
after installing Mailman 3 in a new virtual environment, I ran into the compatibility issues with django-allauth discussed by Andreas Vetter and Mark Sapira on this list in February[1] and in March[2] –
WARNINGS: settings.ACCOUNT_AUTHENTICATION_METHOD is deprecated, use: settings.ACCOUNT_LOGIN_METHODS = {'email', 'username'} settings.ACCOUNT_EMAIL_REQUIRED is deprecated, use: settings.ACCOUNT_SIGNUP_FIELDS = ['email*', 'username*', 'password1*', 'password2*']
– and solved them with the additions to /etc/mailman3/settings.py suggested by Mark:
del ACCOUNT_AUTHENTICATION_METHOD ACCOUNT_LOGIN_METHODS = {'email', 'username'} del ACCOUNT_EMAIL_REQUIRED ACCOUNT_SIGNUP_FIELDS = ['email*', 'username*', 'password1*', 'password2*']
In the second list thread, Mark linked to the current (patched) version of mailman-web's mailman.py[3], which addresses the deprecation of ACCOUNT_AUTHENTICATION_METHOD, but not of ACCOUNT_EMAIL_REQUIRED. Is there any reason why the patch fixes only one of the two issues?
- Jan
[1] https://lists.mailman3.org/archives/list/mailman-users@mailman3.org/thread/U... [2] https://lists.mailman3.org/archives/list/mailman-users@mailman3.org/thread/T... [3] https://gitlab.com/mailman/mailman-web/-/blob/c8b9aef1704b75b1cb6d0c925855a1...

On 5/14/25 11:50, Jan Eden via Mailman-users wrote:
– and solved them with the additions to /etc/mailman3/settings.py suggested by Mark:
del ACCOUNT_AUTHENTICATION_METHOD ACCOUNT_LOGIN_METHODS = {'email', 'username'}
I suggested the above.
del ACCOUNT_EMAIL_REQUIRED ACCOUNT_SIGNUP_FIELDS = ['email*', 'username*', 'password1*', 'password2*']
I didn't suggest these. That was from another poster in that thread. We don't set
ACCOUNT_SIGNUP_FIELDS = ['email*', 'username*', 'password1*', 'password2*']
in mailman_web/settings/mailman.py because the default is
ACCOUNT_SIGNUP_FIELDS = ['username*', 'email', 'password1*', 'password2*']
and that plus
ACCOUNT_EMAIL_REQUIRED = True
is the same thing. However, it appears that there is a deprecation warning with django-allauth >= 65.5. I haven't seen this because the sites I manage are all using django-allauth 65.4.1
So to avoid the deprecations with django-allauth >= 65.5 it is appropriate to drop ACCOUNT_EMAIL_REQUIRED and set
ACCOUNT_SIGNUP_FIELDS = ['email*', 'username*', 'password1*', 'password2*']
However, that setting doesn't exist in django-allauth < 65.5 so we also need to require django-allauth >= 65.5. I will do this.
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan
participants (2)
-
Jan Eden
-
Mark Sapiro