blob: 4eb3a06d758a146e25668645a2dd3f5dcd60fbfb [file] [log] [blame]
Dirk Vogt57a615d2017-05-04 22:29:54 +02001from allauth.socialaccount.adapter import DefaultSocialAccountAdapter
2from allauth.account.adapter import DefaultAccountAdapter
3from django.core.exceptions import PermissionDenied
4from django.contrib.auth.models import Group
5
Mitja Nikolauscb50f2c2018-08-24 13:54:48 +02006
Dirk Vogt57a615d2017-05-04 22:29:54 +02007class FairphoneAccountAdapter(DefaultSocialAccountAdapter):
Dirk Vogt57a615d2017-05-04 22:29:54 +02008 def is_open_for_signup(self, request, sociallogin):
9 return True
Mitja Nikolauscb50f2c2018-08-24 13:54:48 +020010
Dirk Vogt57a615d2017-05-04 22:29:54 +020011 def save_user(self, request, sociallogin, form=None):
Mitja Nikolauscb50f2c2018-08-24 13:54:48 +020012 u = DefaultSocialAccountAdapter.save_user(
13 self, request, sociallogin, form=None
14 )
15 if u.email.split("@")[1] == "fairphone.com":
16 g = Group.objects.get(name="FairphoneSoftwareTeam")
Dirk Vogt57a615d2017-05-04 22:29:54 +020017 g.user_set.add(u)
18 return u
Mitja Nikolauscb50f2c2018-08-24 13:54:48 +020019
20 def populate_user(self, request, sociallogin, data):
21 u = DefaultSocialAccountAdapter.populate_user(
22 self, request, sociallogin, data
23 )
24 if not u.email.split("@")[1] == "fairphone.com":
25 raise PermissionDenied()
Dirk Vogt57a615d2017-05-04 22:29:54 +020026 return u
27
Mitja Nikolauscb50f2c2018-08-24 13:54:48 +020028
Dirk Vogt57a615d2017-05-04 22:29:54 +020029class FormAccountAdapter(DefaultAccountAdapter):
30 def is_open_for_signup(self, request):
31 return False