Example #1
0
def on_login_failed(sender, provider, oauth_response):
    app.logger.debug('Social Login Failed via %s; '
                     '&oauth_response=%s' % (provider.name, oauth_response))

    # Save the oauth response in the session so we can make the connection
    # later after the user possibly registers
    session['failed_login_connection'] = \
        get_connection_values_from_oauth_response(provider, oauth_response)

    raise SocialLoginError(provider)
def on_login_failed(sender, provider, oauth_response):
    app.logger.debug('Social Login Failed via %s; '
                     '&oauth_response=%s' % (provider.name, oauth_response))

    # Save the oauth response in the session so we can make the connection
    # later after the user possibly registers
    session['failed_login_connection'] = \
        get_connection_values_from_oauth_response(provider, oauth_response)

    raise SocialLoginError(provider)
Example #3
0
def on_login_failed(sender, provider, oauth_response):
    connection_values = get_connection_values_from_oauth_response(
        provider, oauth_response)
    ds = app.security.datastore
    email = connection_values.pop('email', None)
    user = ds.create_user(email=email)
    ds.commit()
    connection_values['user_id'] = user.id
    connect_handler(connection_values, provider)
    login_user(user)
    db.session.commit()
Example #4
0
def on_login_failed(sender, provider, oauth_response):
    connection_values = get_connection_values_from_oauth_response(
        provider, oauth_response)
    connection_values['display_name'] = connection_values['display_name'][
        'givenName'] + " " + connection_values['display_name']['familyName']
    connection_values['full_name'] = connection_values['display_name']
    session['google_id'] = connection_values['provider_user_id']
    user = user_datastore.create_user(google_id=session['google_id'])
    user_datastore.commit()
    connection_values['user_id'] = user.id
    connect_handler(connection_values, provider)
    login_user(user)
    db.session.commit()
    return render_template('index.html')
Example #5
0
    def register_new_user(**kwargs):
        from survaider.security.controller import user_datastore

        reg_dat = get_connection_values_from_oauth_response(kwargs['provider'], kwargs['oauth_response'])

        user = user_datastore.create_user(email = reg_dat['email'], password = str(uuid.uuid4()))
        user.metadata['full_name'] = reg_dat['full_name'] if 'full_name' in reg_dat else reg_dat['display_name'] if 'display_name' in reg_dat else None

        user.save()

        reg_dat['user_id'] = str(user)
        connect_handler(reg_dat, kwargs['provider'])
        login_user(user)

        return True
Example #6
0
    def register_new_user(**kwargs):
        from survaider.security.controller import user_datastore

        reg_dat = get_connection_values_from_oauth_response(
            kwargs['provider'], kwargs['oauth_response'])

        user = user_datastore.create_user(email=reg_dat['email'],
                                          password=str(uuid.uuid4()))
        user.metadata['full_name'] = reg_dat[
            'full_name'] if 'full_name' in reg_dat else reg_dat[
                'display_name'] if 'display_name' in reg_dat else None

        user.save()

        reg_dat['user_id'] = str(user)
        connect_handler(reg_dat, kwargs['provider'])
        login_user(user)

        return True
Example #7
0
    def auto_add_user(sender, provider, oauth_response):
        connection_values = get_connection_values_from_oauth_response(
            provider, oauth_response)
        email = connection_values['email']
        if not email or not email.strip():
            email = ''

        if provider.name.lower() == 'facebook':
            fname = connection_values['full_name']
            email = fb.get_email(oauth_response)
        elif provider.name.lower() == 'twitter':
            fname = connection_values['display_name'][1:]  # cut off leading @
        else:
            fname = connection_values['display_name']

        user = user_datastore.create_user(
            email=email,
            name=fname,
            active=True,
            confirmed_at=datetime.now(),
        )

        role_query = mdl.DB.session.query(mdl.Role).filter_by(
            name='authenticated')
        try:
            role = role_query.one()
        except NoResultFound:
            role = mdl.Role(name='authenticated')

        user.roles.append(role)
        user_datastore.commit()
        connection_values['user_id'] = user.id
        connect_handler(connection_values, provider)
        login_user(user)
        mdl.DB.session.commit()
        flash(gettext(
            'Successfully linked login with {}. '
            'Ignore the message saying: "{}"').format(
            provider.name, '... account not associated with an existing user'),
            'info')
        return redirect(url_for('root.profile'))
Example #8
0
def on_login_failed(sender, provider, oauth_response):
    print('Social Login Failed via %s; '
                     '&oauth_response=%s' % (provider.name, oauth_response))
    fb = provider.name.lower() == 'Facebook'.lower()
    token = oauth_response['access_token']
    cv = get_connection_values_from_oauth_response(provider, oauth_response)
    print str(provider)
    print str(oauth_response)
    print str(cv)
    print 'token is ' + token
    if login.current_user.is_authenticated():
      print 'current user is authenticated not creating new'
      u = login.current_user
      if fb:
        u.fb_key = token
      else:
        u.google_key = token
      u.save()
    else:
      try:
        if fb:
          u = User.objects.get(fb_id = cv['provider_user_id'])
          u.fb_key = token
        else:
          u = User.objects.get(google_id=cv['provider_user_id'])
          u.google_key = token
        u.save()
        login_user(u)
        return
      except:
        if fb:
          u = User(fb_id=cv['provider_user_id'], name=cv['full_name'], fb_key = token)
        else:
          u = User(google_id=cv['provider_user_id'], name=cv['display_name']['givenName'] + ' ' + cv['display_name']['familyName'], google_key = token)
        u.save()
        login_user(u)
        return
Example #9
0
def on_login_failed(sender, provider, oauth_response):
    app.logger.debug('Social Login Failed via %s; '
                     '&oauth_response=%s' % (provider.name, oauth_response))
    session['failed_login_connection'] = \
        get_connection_values_from_oauth_response(provider, oauth_response)
    raise SocialLoginError(provider)