Beispiel #1
0
def genericSocialLogin(sn_method, sn_id, sn_email, request, sn_access_token, state='homepage'):
    try :
        sn_signin_result = ttagSocialNetworkSignin(sn_method, sn_id, sn_email)
        localprint(request, sn_signin_result)
        response = None
        if sn_signin_result['result'] == 'OK':
            response = render_to_response('lb_signin.html',
                                                  {'state': state, 'sn_method':sn_method},
                                                  context_instance=RequestContext(request))
            setCookie(response, 'access_token', sn_signin_result['access_token'])        
        elif state == 'signin' :
            response = signinError(request, 'password', u"You don't seem to have an active account with us yet. You should sign up first, then go to your Settings page and connect this social network to your account.")
        else:
            sn_full_name = sn_email.split('@')[0] + ''.join(random.choice(string.digits) for x in range(5))
            sn_user_name = sn_full_name
            sn_password = ''.join(random.choice(string.digits + string.ascii_lowercase + string.ascii_uppercase) for x in range(8))
            sn_signup_result = ttagSocialNetworkNonTwitterSignup(sn_email, sn_user_name, sn_full_name, sn_password, sn_method, sn_id)
            if sn_signup_result['result'] == 'OK':
                c = {}
                if sn_method == 'facebook':
                    postToFacebookWall(sn_access_token, 'Registered at Ttagit.com', request)
                    c = {'state':state,'friendrequest':facebookFriendsRequest(request, True)}
                
                response = render_to_response('lb_signin.html',
                      c,
                      context_instance=RequestContext(request))
    #            if sn_method == 'googleplus':
    #                temp_list = getGoogleContactUrllib(sn_access_token)
    #                c = {'google_contact_list': temp_list}
    #                response = render_to_response('test_contacts.html', c, context_instance=RequestContext(request))
                setCookie(response, 'access_token', sn_signup_result['access_token'])
            else:
                response = signinError(request, 'password', u"Your email address already exists in our system, please login to your TTAGIT account and then go to the Settings page to connect this social network account.")
        return response
    except :
        logger=logging.getLogger(__name__)
        return errorscreen(request,logger, sys)
Beispiel #2
0
def twitterAuthCallback(request):
    try:
        import urllib
        consumer = oauth.Consumer(
            key=TWITTER_CONSUMER_KEY,
            secret=TWITTER_CONSUMER_SECRET)  #@UndefinedVariable
        response = None
        localprint(request, request.session['tw_oauth_token_secret'])
        if request.GET.get('oauth_token') != None:
            token = oauth.Token(
                request.GET.get('oauth_token'),
                request.session['tw_oauth_token_secret'])  #@UndefinedVariable
            token.set_verifier(verifier=request.GET.get('oauth_verifier'))
            accessToken_url = 'https://api.twitter.com/oauth/access_token'
            client = oauth.Client(consumer, token)  #@UndefinedVariable
            client.ca_certs = certifi.where()
            resp, content = client.request(accessToken_url, 'POST')
            localprint(request, content)
            if resp.status == 200:
                twitter_request_state = request.session[
                    'twitter_request_state']
                twitter_user_info = content.split('&')
                if twitter_request_state == 'userpage':
                    localprint(request, twitter_user_info[2])
                    response = genericSocialActivate(
                        'twitter', twitter_user_info[2].split('=')[1],
                        request.COOKIES['access_token'], request, 'userpage')
                    localprint(request, 'userpage')
                elif twitter_request_state == 'homepage':
                    context = {}
                    for pair in twitter_user_info:
                        if pair.find('='):
                            key, value = map(urllib.unquote, pair.split('='))
                            try:
                                context[key] = context[key] + ',' + value
                            except KeyError:
                                context[key] = value
                    request.session["twitter_id"] = context["user_id"]
                    request.session.modified = True
                    return HttpResponseRedirect(paths.HTTPS +
                                                request.get_host() +
                                                '/signup/twitter')
                elif twitter_request_state == 'signin':
                    localprint(request, 'homepage')
                    context = {'full_name': '', 'email': ''}
                    for pair in twitter_user_info:
                        if pair.find('='):
                            key, value = map(urllib.unquote, pair.split('='))
                            try:
                                context[key] = context[key] + ',' + value
                            except KeyError:
                                context[key] = value
                    context['user_name'] = context['screen_name']
                    context['sn_method'] = 'twitter'
                    #twitter_val_json = ttagServiceTwitterValidation(context['user_id'])
                    twitter_val_json = ttagSocialNetworkSignin(
                        'twitter', context['user_id'], '')
                    if twitter_val_json['result'] == 'OK':
                        access_token = twitter_val_json['access_token']
                        #Twitter account exist in our data
                        #sign user in and get accesstoken
                        response = render_to_response(
                            'lb_signin.html', {'state': twitter_request_state},
                            context_instance=RequestContext(request))
                        setCookie(response, 'access_token', access_token)
                    elif twitter_request_state == 'signin':
                        response = signinError(
                            request, 'password',
                            u"You don't seem to have an active account with us yet. You should sign up first, then go to your Settings page and connect this social network to your account."
                        )
                    else:
                        ##Redirect user to twitter register page ask for user email, full name, password, (use twitter_screen_name as the default value)
                        #twitter_screen_name = twitter_user_info[3].split('=')[1]
                        ## user service: ttagServiceTwitterRegister(twitter_user_id, twitter_screen_name, email, password, full_name)
                        ## User directed to sign up lightbox form
                        #request.session['full_name'] = twitter_screen_name
                        ## Twitter will not provide email
                        ## to lightbox with another signup form
                        #return HttpResponseRedirect('http://www.yahoo.com')
                        response = render_to_response(
                            'lb_signup.html',
                            context,
                            context_instance=RequestContext(request))
            else:
                ## Twitter API token is invalid
                if (twitter_request_state == "homepage"):
                    from webapp.views.signup import signupError
                    response = signupError(
                        request, 'password',
                        u"Sorry, the Twitter sign-in failed.")
                else:
                    response = signinError(
                        request, 'password',
                        u"Sorry, the Twitter sign-in failed.")
            return response
        else:
            return HttpResponseRedirect(reverse('home-page'))
            # return HttpResponse("<script>window.close();</script>")
    except:
        logger = logging.getLogger(__name__)
        return errorscreen(request, logger, sys)
Beispiel #3
0
def genericSocialLogin(sn_method,
                       sn_id,
                       sn_email,
                       request,
                       sn_access_token,
                       state='homepage'):
    try:
        sn_signin_result = ttagSocialNetworkSignin(sn_method, sn_id, sn_email)
        localprint(request, sn_signin_result)
        response = None
        if sn_signin_result['result'] == 'OK':
            response = render_to_response(
                'lb_signin.html', {
                    'state': state,
                    'sn_method': sn_method
                },
                context_instance=RequestContext(request))
            setCookie(response, 'access_token',
                      sn_signin_result['access_token'])
        elif state == 'signin':
            response = signinError(
                request, 'password',
                u"You don't seem to have an active account with us yet. You should sign up first, then go to your Settings page and connect this social network to your account."
            )
        else:
            sn_full_name = sn_email.split('@')[0] + ''.join(
                random.choice(string.digits) for x in range(5))
            sn_user_name = sn_full_name
            sn_password = ''.join(
                random.choice(string.digits + string.ascii_lowercase +
                              string.ascii_uppercase) for x in range(8))
            sn_signup_result = ttagSocialNetworkNonTwitterSignup(
                sn_email, sn_user_name, sn_full_name, sn_password, sn_method,
                sn_id)
            if sn_signup_result['result'] == 'OK':
                c = {}
                if sn_method == 'facebook':
                    postToFacebookWall(sn_access_token,
                                       'Registered at Ttagit.com', request)
                    c = {
                        'state': state,
                        'friendrequest': facebookFriendsRequest(request, True)
                    }

                response = render_to_response(
                    'lb_signin.html',
                    c,
                    context_instance=RequestContext(request))
                #            if sn_method == 'googleplus':
                #                temp_list = getGoogleContactUrllib(sn_access_token)
                #                c = {'google_contact_list': temp_list}
                #                response = render_to_response('test_contacts.html', c, context_instance=RequestContext(request))
                setCookie(response, 'access_token',
                          sn_signup_result['access_token'])
            else:
                response = signinError(
                    request, 'password',
                    u"Your email address already exists in our system, please login to your TTAGIT account and then go to the Settings page to connect this social network account."
                )
        return response
    except:
        logger = logging.getLogger(__name__)
        return errorscreen(request, logger, sys)
Beispiel #4
0
def twitterAuthCallback(request):
    try :
        import urllib
        consumer = oauth.Consumer(key=TWITTER_CONSUMER_KEY, secret=TWITTER_CONSUMER_SECRET) #@UndefinedVariable
        response = None
        localprint(request, request.session['tw_oauth_token_secret'])
        if request.GET.get('oauth_token') != None:
            token = oauth.Token(request.GET.get('oauth_token'), request.session['tw_oauth_token_secret']) #@UndefinedVariable
            token.set_verifier(verifier=request.GET.get('oauth_verifier'))
            accessToken_url = 'https://api.twitter.com/oauth/access_token'
            client = oauth.Client(consumer, token) #@UndefinedVariable
            client.ca_certs = certifi.where()
            resp, content = client.request(accessToken_url, 'POST')
            localprint(request, content)
            if resp.status == 200:
                twitter_request_state = request.session['twitter_request_state']            
                twitter_user_info = content.split('&')
                if twitter_request_state == 'userpage':
                    localprint(request, twitter_user_info[2])
                    response = genericSocialActivate('twitter', twitter_user_info[2].split('=')[1], request.COOKIES['access_token'], request, 'userpage')                
                    localprint(request, 'userpage')
                elif twitter_request_state == 'homepage':
                    context = {}
                    for pair in twitter_user_info :
                        if pair.find('=') :
                            key,value = map(urllib.unquote,pair.split('='))
                            try :
                                context[key] = context[key]+','+value
                            except KeyError :
                                    context[key] = value
                    request.session["twitter_id"] = context["user_id"];
                    request.session.modified = True
                    return HttpResponseRedirect(paths.HTTPS+request.get_host()+'/signup/twitter')
                elif twitter_request_state == 'signin':
                    localprint(request, 'homepage')
                    context = {'full_name':'','email':''}
                    for pair in twitter_user_info :
                        if pair.find('=') :
                            key,value = map(urllib.unquote,pair.split('='))
                            try :
                                context[key] = context[key]+','+value
                            except KeyError :
                                    context[key] = value
                    context['user_name'] = context['screen_name']
                    context['sn_method'] = 'twitter'
                    #twitter_val_json = ttagServiceTwitterValidation(context['user_id'])    
                    twitter_val_json = ttagSocialNetworkSignin('twitter', context['user_id'], '')
                    if twitter_val_json['result'] == 'OK':
                        access_token = twitter_val_json['access_token'] 
                        #Twitter account exist in our data
                        #sign user in and get accesstoken
                        response = render_to_response('lb_signin.html',
                                                      {'state': twitter_request_state},
                                                      context_instance=RequestContext(request))
                        setCookie(response, 'access_token', access_token)
                    elif twitter_request_state == 'signin' :
                        response = signinError(request, 'password', u"You don't seem to have an active account with us yet. You should sign up first, then go to your Settings page and connect this social network to your account.")
                    else:            
                        ##Redirect user to twitter register page ask for user email, full name, password, (use twitter_screen_name as the default value)
                        #twitter_screen_name = twitter_user_info[3].split('=')[1]
                        ## user service: ttagServiceTwitterRegister(twitter_user_id, twitter_screen_name, email, password, full_name)
                        ## User directed to sign up lightbox form
                        #request.session['full_name'] = twitter_screen_name
                        ## Twitter will not provide email
                        ## to lightbox with another signup form
                        #return HttpResponseRedirect('http://www.yahoo.com')
                        response =  render_to_response('lb_signup.html',
                                                  context,
                                              context_instance=RequestContext(request))
            else:
                ## Twitter API token is invalid
                if(twitter_request_state == "homepage") :
                    from webapp.views.signup import signupError
                    response = signupError(request, 'password', u"Sorry, the Twitter sign-in failed.")
                else :
                    response = signinError(request, 'password', u"Sorry, the Twitter sign-in failed.")
            return response
        else:
            return HttpResponseRedirect(reverse('home-page'))
            # return HttpResponse("<script>window.close();</script>")
    except :
        logger=logging.getLogger(__name__)
        return errorscreen(request,logger, sys)