diff --git a/rest_auth/registration/serializers.py b/rest_auth/registration/serializers.py index 4f99c18..3cafe91 100644 --- a/rest_auth/registration/serializers.py +++ b/rest_auth/registration/serializers.py @@ -8,6 +8,7 @@ try: get_username_max_length) from allauth.account.adapter import get_adapter from allauth.account.utils import setup_user_email + from allauth.socialaccount.adapter import get_adapter from allauth.socialaccount.helpers import complete_social_login from allauth.socialaccount.models import SocialAccount from allauth.socialaccount.providers.base import AuthProcess @@ -139,6 +140,12 @@ class SocialLoginSerializer(serializers.Serializer): _("User is already registered with this e-mail address.") ) + # If signup is disabled, we cannot login a new user + if not get_adapter(request).is_open_for_signup(request, login): + raise serializers.ValidationError( + _("User is not registered but registration is closed.") + ) + login.lookup() login.save(request, connect=True)