등록을 단순히 해제하려면 기본 계정 어댑터를 덮어 써야합니다. 소셜 로그인도 지원하려면 기본 soculaaccount 어댑터를 덮어 써야합니다. 앱에 하나의 어딘가에 다음 코드를 추가합니다 (예 : adapter.py
) :
from allauth.account.adapter import DefaultAccountAdapter
from allauth.socialaccount.adapter import DefaultSocialAccountAdapter
from allauth.exceptions import ImmediateHttpResponse
class NoNewUsersAccountAdapter(DefaultAccountAdapter):
def is_open_for_signup(self, request):
return False
class SocialAccountWhitelist(DefaultSocialAccountAdapter):
def pre_social_login(self, request, sociallogin):
u = sociallogin.user
print('User {0} is trying to login'.format(u.email))
# Write code here to check your whitelist
if not_in_your_list(u):
raise ImmediateHttpResponse(HttpResponseRedirect('/account/login'))
다음 설정에 다음을 추가 : 그 후
ACCOUNT_ADAPTER = 'path_to_app.adapter.NoNewUsersAccountAdapter'
SOCIALACCOUNT_ADAPTER = 'path_to_app.adapters.SocialAccountWhitelist'
, 당신은 수동으로를 작성하기 만하면 모든 관리자 페이지에서 계정을 만들고 수동으로 EmailAddress를 만듭니다. 소셜 로그인의 경우 전자 메일이 허용되는지 여부를 확인하기 위해 코드를 작성해야합니다.
사용자 이름, 전자 메일 및 이메일을 요청할 수있는 직원 전용 양식을 추가하는 것이 좋습니다. 심지어 암호) 다음
new_user = Account.objects.create_user(email=email, username=username, password=password)
EmailAddress.objects.create(email=email, user=new_user, verified=True, primary=True)
을 당신은 또한 초대 방식을 개발할 수 있습니다,하지만 훨씬 더 복잡하지만 빠르게 봤 나는 개인적으로 사용하지 않은 다음 프로젝트를 발견,하지만 당신이 필요 같습니다 :
https://github.com/bee-keeper/django-invitations
계정을 직접 만들어야하며 나중에 암호를 변경해야하는 등 등록을 단순히 해제 할 수 있습니까? 등록을 비활성화 할 수도 있지만 초대를 구현할 수 있습니다. 이것이 좋은 해결책이라면 세부 사항을 줄 수 있습니다. – dkarchmer
예, 좋습니다. 계속해주십시오. –