Exemplo n.º 1
0
def enote_oauth_callback(request):
    agent = OAuthAgent()
    consumer = agent.get_consumer()
    request_token = request.GET.get('oauth_token')
    request_secret = request.session['request_token_secret']

    token = oauth.Token(request_token, request_secret)
    verifier = request.GET.get('oauth_verifier')
    if verifier:
        token.set_verifier(verifier)

    agent.agent_token = token
    client = agent.get_client()
    resp, content = client.request(agent.access_token_url(), 
                                   'GET')
    token_dict = dict(urlparse.parse_qsl(content))
    auth_token = token_dict['oauth_token']

    profile, c = ENoteProfile.objects.get_or_create(euserid=token_dict['edam_userId'])
    profile.auth_token = auth_token
    if c:
        client = ENoteClient(auth_token)
        user_store = client.get_user_store()
        userobj = user_store.getUser(client.auth_token)

        profile.shard_id = userobj.shardId

        user = User.objects.create_user(userobj.username,
                                        '*****@*****.**' % userobj.username)
        user.set_password(userobj.username + '.asdf')
        user.save()
        profile.user = user
        profile.note_store_url = token_dict['edam_noteStoreUrl']
        profile.last_synced = datetime.now() - timedelta(seconds=settings.SYNC_INTERVAL)
        profile.save()

        # async 
        if 0:
            note_store = client.get_note_store()
            processor = SyncNoteProcessor(client,
                                          user)
            state = note_store.getSyncState(client.auth_token)
            if state.updateCount > profile.update_count:
                processor.full_sync(state, use_tag=True)

    else:
        profile.save()
        user = profile.user

    u = authenticate(username=user.username,
                     password=user.username + '.asdf')
    if u:
        login(request, u)
        return redirect(profile.get_absolute_url())
    else:
        return redirect('/')
Exemplo n.º 2
0
def enote_oauth(request):
    agent = OAuthAgent()
    callback_url = request.build_absolute_uri('/auth/callback')
    req_token = agent.get_request_token(callback_url)
    request.session['request_token'] = req_token['oauth_token']
    request.session['request_token_secret'] = req_token['oauth_token_secret']

    params = urllib.urlencode({
            'oauth_token': req_token['oauth_token'],
            'oauth_callback': callback_url
            })
    aurl = '%s?%s' % (agent.authorize_url(), params)
    return redirect(aurl, code=302)
Exemplo n.º 3
0
def enote_oauth(request):
    agent = OAuthAgent()
    callback_url = request.build_absolute_uri('/auth/callback')
    req_token = agent.get_request_token(callback_url)
    request.session['request_token'] = req_token['oauth_token']
    request.session['request_token_secret'] = req_token['oauth_token_secret']

    params = urllib.urlencode({
        'oauth_token': req_token['oauth_token'],
        'oauth_callback': callback_url
    })
    aurl = '%s?%s' % (agent.authorize_url(), params)
    return redirect(aurl, code=302)
Exemplo n.º 4
0
def enote_oauth_callback(request):
    agent = OAuthAgent()
    consumer = agent.get_consumer()
    request_token = request.GET.get('oauth_token')
    request_secret = request.session['request_token_secret']

    token = oauth.Token(request_token, request_secret)
    verifier = request.GET.get('oauth_verifier')
    if verifier:
        token.set_verifier(verifier)

    agent.agent_token = token
    client = agent.get_client()
    resp, content = client.request(agent.access_token_url(), 'GET')
    token_dict = dict(urlparse.parse_qsl(content))
    auth_token = token_dict['oauth_token']

    profile, c = ENoteProfile.objects.get_or_create(
        euserid=token_dict['edam_userId'])
    profile.auth_token = auth_token
    if c:
        client = ENoteClient(auth_token)
        user_store = client.get_user_store()
        userobj = user_store.getUser(client.auth_token)

        profile.shard_id = userobj.shardId

        user = User.objects.create_user(userobj.username,
                                        '*****@*****.**' % userobj.username)
        user.set_password(userobj.username + '.asdf')
        user.save()
        profile.user = user
        profile.note_store_url = token_dict['edam_noteStoreUrl']
        profile.last_synced = datetime.now() - timedelta(
            seconds=settings.SYNC_INTERVAL)
        profile.save()

        # async
        if 0:
            note_store = client.get_note_store()
            processor = SyncNoteProcessor(client, user)
            state = note_store.getSyncState(client.auth_token)
            if state.updateCount > profile.update_count:
                processor.full_sync(state, use_tag=True)

    else:
        profile.save()
        user = profile.user

    u = authenticate(username=user.username, password=user.username + '.asdf')
    if u:
        login(request, u)
        return redirect(profile.get_absolute_url())
    else:
        return redirect('/')