diff --git a/functions/pipeline.py b/functions/pipeline.py index b3cb665b..b4a39553 100644 --- a/functions/pipeline.py +++ b/functions/pipeline.py @@ -23,6 +23,14 @@ def random_pass(): return ''.join(password) +def get_email(strategy, details, response, *args, **kwargs): + if not details.get('email'): + email = response.get('email') + if email: + details['email'] = email + return {'details': details} + + def load_user(strategy, details, response, uid, *args, **kwargs): user = None if details.get('email'): @@ -54,7 +62,11 @@ def require_email(strategy, details, user=None, is_new=False, *args, **kwargs): return elif is_new and not details.get('email'): email = strategy.request_data().get('email') - if email and not User.objects.filter(email=email).exists(): + import pdb; pdb.set_trace() + if not email: + strategy.request.session['new_email'] = True + return redirect('acquire_email') + elif email and not User.objects.filter(email=email).exists(): details['email'] = email else: strategy.request.session['new_email'] = True diff --git a/support/dev/settings.py b/support/dev/settings.py index ff135e44..2d16966b 100644 --- a/support/dev/settings.py +++ b/support/dev/settings.py @@ -282,6 +282,7 @@ SOCIAL_AUTH_VK_OAUTH2_SCOPE =['email'] SOCIAL_AUTH_VK_OAUTH2_PROFILE_EXTRA_PARAMS = { 'fields': 'email' } +SOCIAL_AUTH_VK_OAUTH2_EXTRA_DATA = ['email'] SOCIAL_AUTH_FACEBOOK_KEY = '133775720059470' SOCIAL_AUTH_FACEBOOK_SECRET = '434edf89c24a290497646a739df656c6' diff --git a/support/prod/settings.py b/support/prod/settings.py index f5b21689..cb2159d5 100644 --- a/support/prod/settings.py +++ b/support/prod/settings.py @@ -282,6 +282,7 @@ SOCIAL_AUTH_VK_OAUTH2_SCOPE =['email'] SOCIAL_AUTH_VK_OAUTH2_PROFILE_EXTRA_PARAMS = { 'fields': 'email' } +SOCIAL_AUTH_VK_OAUTH2_EXTRA_DATA = ['email'] SOCIAL_AUTH_FACEBOOK_KEY = '133775720059470' SOCIAL_AUTH_FACEBOOK_SECRET = '434edf89c24a290497646a739df656c6'