Django allauth已确认自动设置邮件地址

时间:2019-07-02 10:33:02

标签: python django django-auth-ldap mailman

我正在将django-allauth与LDAP后端一起使用。

因此,每当用户登录时,邮件地址都将设置为存储在我们目录服务器中的邮件地址。

我可以通过设置禁用电子邮件确认

ACCOUNT_EMAIL_VERIFICATION = "none"

但是现在这些用户的帐户上附加了未经确认的邮件地址。 更具体地说:我正在尝试设置一个包括webUI的mailman 3并将其连接到LDAP。 邮件地址未经确认的用户将导致他们无法使用该地址订阅邮件列表。

我可以以某种方式修改AccountAdapter以便在用户登录时自动确认邮件地址吗?

1 个答案:

答案 0 :(得分:0)

我和Mailman都有同样的问题。以下AccountAdapter为我执行自动确认:

from allauth.account.adapter import DefaultAccountAdapter
from allauth.account.models import EmailAddress
from allauth.account.utils import user_email

class NoNewUsersAccountAdapter(DefaultAccountAdapter):

    def is_open_for_signup(self, request):
        return False

    def login(self, request, user):
        super().login(request, user)
        email, created = EmailAddress.objects.get_or_create(
            user=user,
            email=user_email(user)
        )
        email.verified = True
        email.save()