Coverage for sm/adapter.py: 100%
16 statements
« prev ^ index » next coverage.py v7.17.0, created at 2026-10-24 19:06 +0000
« prev ^ index » next coverage.py v7.17.0, created at 2026-10-24 19:06 +0000
1from allauth.socialaccount.adapter import DefaultSocialAccountAdapter
2from django.contrib.auth import get_user_model
5class MySocialAccountAdapter(DefaultSocialAccountAdapter):
6 def pre_social_login(self, request, sociallogin):
7 """
8 Connect an existing local account to a social account only when the
9 provider has verified a matching email address.
10 """
11 if sociallogin.is_existing:
12 return
14 User = get_user_model()
15 for email_address in sociallogin.email_addresses:
16 if not email_address.verified:
17 continue
18 try:
19 user = User.objects.get(email=email_address.email)
20 except (User.DoesNotExist, User.MultipleObjectsReturned):
21 continue
22 sociallogin.connect(request, user)
23 return