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)
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)
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)
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)