Coverage for sm/adapter.py: 100%

16 statements  

« 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 

3 

4 

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 

13 

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