def oauth_authorized(service_provider_name):
     session_user = get_current_user()
     try:
         current_provider = providers.get_by_name(service_provider_name)
         token, secret = current_provider.get_access_tokens()
         fresh_user = get_user_by_token(current_provider, token, secret)
         if session_user is not None:
             if fresh_user.id == session_user.id:
                 flash('This provider was already linked to this account.')
             else:
                 flash('Merging accounts is not currently supported.')
         else:
             log_user_in(fresh_user)
     except ServiceProviderNotFound:
         flash('Provider not found.')
     except UserDeniedRequest:
         flash('You denied us access.')
     except UserNotFound:
         if session_user is None:
             try:
                 user = get_user_by_remote_id(current_provider, token=(token,secret))
             except UserNotFound:
                 user = create_user()
             log_user_in(user)
         add_SP_to_user_by_id(
             get_current_user().id, current_provider, token, secret)
     next_url = request.args.get('next') or url_for('show_user')
     return redirect(next_url)
示例#2
0
    def test_add_sp_to_user_by_id(self):
        user_created = uf.create_user()
        uf.add_SP_to_user_by_id(user_created.id, sp, 'test', 'test')

        self.assertEqual(1, UserSPAccess.query.count())
        self.assertEqual(1, User.query.join(UserSPAccess).count())