def signInPost(request): try : context = {'request':request} formname = 'signin' if request.method == 'POST': if 'formname' in request.POST and request.POST['formname'] == 'minisignin' : formname = 'minisignin' emailform = SigninEmailForm(request.POST) postFields = { 'user': request.POST['user'], 'password': request.POST['password'] } if emailform.is_valid() : resp = ttagPost('/validate/request-username-by-email',{'email':emailform.getEmail()}) if 'result' in resp and resp['result'] == 'OK' : postFields['user'] = resp['user_name'] form = SignInForm(postFields) # bound form if form.is_valid(): json_obj = ttagPost("/login", {'user_name':form.getName(),'password':form.getPassword()}) if json_obj["result"]=="OK": # login successful response = HttpResponseRedirect(paths.HTTPS+request.get_host()+'/') if request.is_ajax() : response = render_to_response('javascript_redirect.html',{'redirect_url':paths.HTTPS+request.get_host()+'/','hidespraycan':True}) setCookie(response, 'access_token', json_obj['data']['user_data']['access_token']) return response else: # login not successful, wrong name/password combo form._errors['password'] = form.error_class([u"Password doesn't match the User Name or Email"]) else: # request method other than POST form = SignInForm() # clear form if request.is_ajax() : import simplejson return HttpResponse(simplejson.dumps({ 'headerOuter':mark_safe(render_to_response('partial_user_dashboard.html',locals(),context_instance=RequestContext(request)).content), 'homepageMain':mark_safe(render_to_response('partial_standalone_signin.html',context,context_instance=RequestContext(request)).content) })) else : context['hideMiniLogin'] = True return render_to_response('standalone_signin.html', context, context_instance=RequestContext(request)) 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 signUpReturn(request, token): try: serviceResponse = ttagServiceSignupTokenValidation(token) json_obj = simplejson.loads(serviceResponse.read()) if (json_obj['result'] == 'OK'): request.session['access_token'] = json_obj['access_token'] # context = { 'request': request, 'settings_message': 'Finish signing up by filling out the required fields.' } form = SettingsForm() context['form'] = form context['loggedin'] = True response = HttpResponseRedirect(paths.HTTPS + request.get_host() + '/settings/firsttime') setCookie(response, 'access_token', json_obj['access_token']) user = get_logged_in_user_with_access_token( request, json_obj['access_token']) # send email from webapp.views.email import activatedEmail activatedEmail(request, user.email) return response else: context = { 'signuperror': 'The sign-up process has expired.', 'request': request } return render_to_response('standalone_homepage.html', context, context_instance=RequestContext(request)) except: logger = logging.getLogger(__name__) return errorscreen(request, logger, sys)
def signUpReturn(request, token): try : serviceResponse = ttagServiceSignupTokenValidation(token) json_obj = simplejson.loads(serviceResponse.read()) if (json_obj['result'] == 'OK'): request.session['access_token'] = json_obj['access_token'] # context = {'request':request,'settings_message':'Finish signing up by filling out the required fields.'} form = SettingsForm() context['form'] = form context['loggedin'] = True response = HttpResponseRedirect(paths.HTTPS+request.get_host()+'/settings/firsttime') setCookie(response, 'access_token', json_obj['access_token']) user = get_logged_in_user_with_access_token(request, json_obj['access_token']) # send email from webapp.views.email import activatedEmail activatedEmail(request, user.email) return response else: context = {'signuperror':'The sign-up process has expired.','request':request} return render_to_response('standalone_homepage.html', context, context_instance=RequestContext(request)) 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 signInPost(request): try: context = {'request': request} formname = 'signin' if request.method == 'POST': if 'formname' in request.POST and request.POST[ 'formname'] == 'minisignin': formname = 'minisignin' emailform = SigninEmailForm(request.POST) postFields = { 'user': request.POST['user'], 'password': request.POST['password'] } if emailform.is_valid(): resp = ttagPost('/validate/request-username-by-email', {'email': emailform.getEmail()}) if 'result' in resp and resp['result'] == 'OK': postFields['user'] = resp['user_name'] form = SignInForm(postFields) # bound form if form.is_valid(): json_obj = ttagPost("/login", { 'user_name': form.getName(), 'password': form.getPassword() }) if json_obj["result"] == "OK": # login successful response = HttpResponseRedirect(paths.HTTPS + request.get_host() + '/') if request.is_ajax(): response = render_to_response( 'javascript_redirect.html', { 'redirect_url': paths.HTTPS + request.get_host() + '/', 'hidespraycan': True }) setCookie(response, 'access_token', json_obj['data']['user_data']['access_token']) return response else: # login not successful, wrong name/password combo form._errors['password'] = form.error_class( [u"Password doesn't match the User Name or Email"]) else: # request method other than POST form = SignInForm() # clear form if request.is_ajax(): import simplejson return HttpResponse( simplejson.dumps({ 'headerOuter': mark_safe( render_to_response( 'partial_user_dashboard.html', locals(), context_instance=RequestContext(request)).content), 'homepageMain': mark_safe( render_to_response( 'partial_standalone_signin.html', context, context_instance=RequestContext(request)).content) })) else: context['hideMiniLogin'] = True return render_to_response('standalone_signin.html', context, context_instance=RequestContext(request)) 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)