Пример #1
0
def twitterAuthCredential(request, state):
    try:
        consumer = oauth.Consumer(
            key=TWITTER_CONSUMER_KEY,
            secret=TWITTER_CONSUMER_SECRET)  #@UndefinedVariable
        request_token_url = 'https://twitter.com/oauth/request_token'
        client = oauth.Client(consumer)  #@UndefinedVariable
        client.ca_certs = certifi.where()
        resp, content = client.request(request_token_url, 'GET')
        content_dict = content.split('&')
        request.session['tw_oauth_token_secret'] = content_dict[1].split(
            '=')[1]
        request.session['twitter_request_state'] = state
        request.session.modified = True
        localprint(request,
                   'token_secret=' + request.session['tw_oauth_token_secret'])
        oauth_token = content_dict[0].split('=')[1]
        localprint(request, content)
        twitter_oauth_url = 'https://api.twitter.com/oauth/authenticate?oauth_token=' + oauth_token
        #return HttpResponse('<script type="text/javascript>document.location.href="'+twitter_oauth_url+'";</script>')
        return HttpResponseRedirect(twitter_oauth_url)
        #webbrowser.open(twitter_oauth_url, new=1, autoraise=True)
    except:
        logger = logging.getLogger(__name__)
        return errorscreen(request, logger, sys)
Пример #2
0
def forgotPasswordMail(request):
    try:
        if ('reset_token' in request.session) and ('reset_email'
                                                   in request.session):
            reset_token = request.session['reset_token']
            subject = 'Ttagit.com forgotten password email verification.'
            email_message = 'Verify your email address by following this link:\n https://' + request.get_host(
            ) + '/fpverify/' + reset_token
            localprint(request, email_message)
            to_address = request.session['reset_email']
            showPopup = True
            send_mail(subject,
                      email_message,
                      FROM_ADDRESS, [to_address],
                      fail_silently=True)
            return render_to_response(
                'forgot_checkemail.html'
                if not request.is_ajax() else 'partial_forgot_checkemail.html',
                locals(),
                context_instance=RequestContext(request))
        else:
            ## cannot send email without reset_token and reset_email
            return HttpResponse(
                'Cannot send email without reset_token and reset_email')
    except:
        logger = logging.getLogger(__name__)
        return errorscreen(request, logger, sys)
Пример #3
0
def googleLoginCredential(request, state):
    try:
        endpoint = 'https://accounts.google.com/o/oauth2/auth?'
        response_type = 'response_type=code&'
        client_id = 'client_id=' + GOOGLE_CLIENT_ID
        redirect_uri = 'redirect_uri=' + GOOGLE_CALLBACK_URL + '&'
        scope = 'scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile+https://www.google.com/m8/feeds&'
        state = 'state=' + state + '&'
        accessTokenURL = endpoint + scope + state + redirect_uri + response_type + client_id
        localprint(request, accessTokenURL)
        return HttpResponseRedirect(accessTokenURL)
    except:
        logger = logging.getLogger(__name__)
        return errorscreen(request, logger, sys)
Пример #4
0
def location(request, ttag_id):
    try :
        thereturn = HttpResponse(mark_safe('<p>This section of the website is currently under construction. Check back soon!</p>'));
        start_time = '0' if 'start_time' not in request.GET else request.GET['start_time']
        location_type = 'geo'
        loggedin, data = ttagServiceAuth(request)
        if loggedin :
            response = ttagPost('/ttag/get',{'ttag_id':ttag_id,'search_on':'ttag'})
            localprint(request,response)
            
        return thereturn;
    except :
        logger=logging.getLogger(__name__)
        return errorscreen(request,logger, sys)
Пример #5
0
def googleLoginCredential(request, state):
    try :
        endpoint = 'https://accounts.google.com/o/oauth2/auth?'
        response_type = 'response_type=code&'
        client_id = 'client_id='+GOOGLE_CLIENT_ID
        redirect_uri = 'redirect_uri='+GOOGLE_CALLBACK_URL+'&'
        scope = 'scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile+https://www.google.com/m8/feeds&'
        state = 'state='+state+'&'
        accessTokenURL = endpoint + scope + state + redirect_uri + response_type + client_id
        localprint(request, accessTokenURL)
        return HttpResponseRedirect(accessTokenURL)
    except :
        logger=logging.getLogger(__name__)
        return errorscreen(request,logger, sys)
Пример #6
0
def hash(request):
    location = request.GET['location']
    start_time = '0' if 'start_time' not in request.GET else request.GET[
        'start_time']
    location_type = 'hashtag'
    thereturn = loginscreen(request)
    loggedin, data = ttagServiceAuth(request)
    if loggedin:
        ttags = ttagPost(
            "/find/hashtag", {
                'hashtag': str(location),
                'items_per_page': '10000',
                'page_number': '0'
            })
        localprint(request, ttags)
        if ttags['result'] == 'OK':
            import datetime
            response = {
                'time': ttags['time'],
                'data': {
                    'founder': {
                        'location_type': 'hashtag',
                        'location': location
                    },
                    'favorite':
                    False,
                    'ttags': [] if ttags['data']['ttags'] == None else
                    ttags['data']['ttags'],
                    'spams': [] if 'spams' not in ttags['data']
                    or ttags['data']['spams'] == None
                    or 'ttag_list' not in ttags['data']['spams']
                    or ttags['data']['spams']['ttag_list'] == None else
                    ttags['data']['spams']['ttag_list'],
                    'thumbups': [] if 'thumbups' not in ttags['data']
                    or ttags['data']['thumbups'] == None
                    or 'ttag_list' not in ttags['data']['thumbups']
                    or ttags['data']['thumbups']['ttag_list'] == None else
                    ttags['data']['thumbups']['ttag_list']
                }
            }
            loggedin_user = data['_id']
            servertime = datetime.datetime.fromtimestamp(
                int(ttags['time']) / 1000)
            thereturn = render_to_response(
                "spraycan.html",
                locals(),
                context_instance=RequestContext(request))
    return thereturn
Пример #7
0
def deactivateSocialNetwork(request, sn_method, state='userpage'):
    try :
        activate_result = ttagDeactivateSocialAccount(sn_method, request.COOKIES['access_token'])
        response = None
        if activate_result['result'] == 'OK':
            localprint(request, 'successfully disconnected')
            response = render_to_response('lb_signin.html',
                                  {'state': state},
                                  context_instance=RequestContext(request))
        else:
            localprint(request, 'not very successfully disconnected')
            response = signinError(request, 'password', u"Sorry, unable to deactivate the account")
        return response
    except :
        logger=logging.getLogger(__name__)
        return errorscreen(request,logger, sys)
Пример #8
0
def forgotPasswordMail(request):
    try :
        if ('reset_token' in request.session) and ('reset_email' in request.session):
            reset_token = request.session['reset_token']
            subject = 'Ttagit.com forgotten password email verification.'
            email_message = 'Verify your email address by following this link:\n https://'+request.get_host()+'/fpverify/' + reset_token
            localprint(request, email_message)
            to_address = request.session['reset_email']
            showPopup = True
            send_mail(subject, email_message, FROM_ADDRESS, [to_address], fail_silently=True)
            return render_to_response('forgot_checkemail.html' if not request.is_ajax() else 'partial_forgot_checkemail.html',locals(),context_instance=RequestContext(request))
        else:
            ## cannot send email without reset_token and reset_email
            return HttpResponse('Cannot send email without reset_token and reset_email')
    except :
        logger=logging.getLogger(__name__)
        return errorscreen(request,logger, sys)
Пример #9
0
def deactivateSocialNetwork(request, sn_method, state='userpage'):
    try:
        activate_result = ttagDeactivateSocialAccount(
            sn_method, request.COOKIES['access_token'])
        response = None
        if activate_result['result'] == 'OK':
            localprint(request, 'successfully disconnected')
            response = render_to_response(
                'lb_signin.html', {'state': state},
                context_instance=RequestContext(request))
        else:
            localprint(request, 'not very successfully disconnected')
            response = signinError(request, 'password',
                                   u"Sorry, unable to deactivate the account")
        return response
    except:
        logger = logging.getLogger(__name__)
        return errorscreen(request, logger, sys)
Пример #10
0
def activationEmail(request, signup_token, recipient):
    try :
        subject, from_email = 'Activate your TTAGIT account', email.FROM_ADDRESS
        templContext = {
                "S3TATIC_URL":         paths.S3TATIC_URL,
                "signup_token":     signup_token,
                "host": paths.HTTPS+request.get_host()
            }
        text_content = mark_safe(render_to_response("email_activation.txt", templContext).content)
        localprint(request, text_content)
        html_content = mark_safe(render_to_response("email_activation.html", templContext).content)
        msg = EmailMultiAlternatives(subject, text_content, from_email, [recipient])
        msg.attach_alternative(html_content, "text/html")
        # msg.send()
        return HttpResponse("You should receive an email")
    except :
        logger=logging.getLogger(__name__)
        return errorscreen(request,logger, sys)
Пример #11
0
def hash(request):
    location = request.GET['location']
    start_time = '0' if 'start_time' not in request.GET else request.GET['start_time']
    location_type = 'hashtag'
    thereturn = loginscreen(request)
    loggedin, data = ttagServiceAuth(request)
    if loggedin :
        ttags = ttagPost("/find/hashtag",{'hashtag': str(location), 'items_per_page': '10000', 'page_number': '0'})
        localprint(request, ttags)
        if ttags['result'] == 'OK' :
            import datetime
            response = {'time': ttags['time'], 'data':{
                                'founder': {'location_type':'hashtag','location':location},
                                'favorite': False,
                                'ttags':[] if ttags['data']['ttags'] == None else ttags['data']['ttags'],
                                'spams':[] if 'spams' not in ttags['data'] or ttags['data']['spams'] == None or 'ttag_list' not in ttags['data']['spams'] or ttags['data']['spams']['ttag_list'] == None else ttags['data']['spams']['ttag_list'],
                                'thumbups':[] if 'thumbups' not in ttags['data'] or ttags['data']['thumbups'] == None or 'ttag_list' not in ttags['data']['thumbups'] or ttags['data']['thumbups']['ttag_list'] == None else ttags['data']['thumbups']['ttag_list']}}
            loggedin_user = data['_id']
            servertime = datetime.datetime.fromtimestamp(int(ttags['time'])/1000)
            thereturn = render_to_response("spraycan.html", locals(), context_instance=RequestContext(request))
    return thereturn
Пример #12
0
def twitterAuthCredential(request, state):
    try :
        consumer = oauth.Consumer(key=TWITTER_CONSUMER_KEY, secret=TWITTER_CONSUMER_SECRET) #@UndefinedVariable
        request_token_url = 'https://twitter.com/oauth/request_token'
        client = oauth.Client(consumer) #@UndefinedVariable
        client.ca_certs = certifi.where()
        resp, content = client.request(request_token_url, 'GET')
        content_dict = content.split('&')
        request.session['tw_oauth_token_secret'] = content_dict[1].split('=')[1]
        request.session['twitter_request_state'] = state
        request.session.modified = True
        localprint(request, 'token_secret=' + request.session['tw_oauth_token_secret'])
        oauth_token=content_dict[0].split('=')[1]
        localprint(request, content)
        twitter_oauth_url = 'https://api.twitter.com/oauth/authenticate?oauth_token='+oauth_token
        #return HttpResponse('<script type="text/javascript>document.location.href="'+twitter_oauth_url+'";</script>')
        return HttpResponseRedirect(twitter_oauth_url)
        #webbrowser.open(twitter_oauth_url, new=1, autoraise=True) 
    except :
        logger=logging.getLogger(__name__)
        return errorscreen(request,logger, sys)
Пример #13
0
def location(request, ttag_id):
    try:
        thereturn = HttpResponse(
            mark_safe(
                '<p>This section of the website is currently under construction. Check back soon!</p>'
            ))
        start_time = '0' if 'start_time' not in request.GET else request.GET[
            'start_time']
        location_type = 'geo'
        loggedin, data = ttagServiceAuth(request)
        if loggedin:
            response = ttagPost('/ttag/get', {
                'ttag_id': ttag_id,
                'search_on': 'ttag'
            })
            localprint(request, response)

        return thereturn
    except:
        logger = logging.getLogger(__name__)
        return errorscreen(request, logger, sys)
Пример #14
0
def activationEmail(request, signup_token, recipient):
    try:
        subject, from_email = 'Activate your TTAGIT account', email.FROM_ADDRESS
        templContext = {
            "S3TATIC_URL": paths.S3TATIC_URL,
            "signup_token": signup_token,
            "host": paths.HTTPS + request.get_host()
        }
        text_content = mark_safe(
            render_to_response("email_activation.txt", templContext).content)
        localprint(request, text_content)
        html_content = mark_safe(
            render_to_response("email_activation.html", templContext).content)
        msg = EmailMultiAlternatives(subject, text_content, from_email,
                                     [recipient])
        msg.attach_alternative(html_content, "text/html")
        # msg.send()
        return HttpResponse("You should receive an email")
    except:
        logger = logging.getLogger(__name__)
        return errorscreen(request, logger, sys)
Пример #15
0
def googleAuthCallback(request):
    try :
        state = request.GET.get('state')
        localprint(request, state)
        code= str(request.GET.get('code'))
        exchangeToken_url = 'https://accounts.google.com/o/oauth2/token'
        data = {'code':code, 'client_id':GOOGLE_CLIENT_ID, 'client_secret':GOOGLE_CLIENT_SECRET, 'redirect_uri':GOOGLE_CALLBACK_URL, 'grant_type':'authorization_code'}
        headers = {'Content-Type':'application/x-www-form-urlencoded'}
        h = httplib2.Http(ca_certs=certifi.where())
        resp, content = h.request(exchangeToken_url, 'POST', headers=headers, body=urlencode(data))
        exchange_token_obj = simplejson.loads(content)
        localprint(request, exchange_token_obj)
        response = None
        if(exchange_token_obj.has_key('access_token')):
            access_token = exchange_token_obj['access_token']
            request.session['google_access_token'] = access_token
            profile_url = 'https://www.googleapis.com/oauth2/v1/userinfo?access_token=' + access_token
            h2 = httplib2.Http(ca_certs=certifi.where())
            user_info_resp, user_info_content = h2.request(profile_url, 'GET')
            user_info_obj = simplejson.loads(user_info_content)
            localprint(request, user_info_obj)
            if user_info_resp.status == 200:
                if state == 'userpage':
                    response = genericSocialActivate('googleplus', user_info_obj['id'], request.COOKIES['access_token'], request, state) #access token has to be change to the right access_token
                elif state == 'homepage' or state == 'signin':
                    response = genericSocialLogin('googleplus', user_info_obj['id'], user_info_obj['email'], request, access_token, state)
            else:
                response = signinError(request,'password', u"Sorry, the Google sign-in failed.")
            return response
            #return response
        else:
            return HttpResponse("<script>window.close();</script>")
    except :
        logger=logging.getLogger(__name__)
        return errorscreen(request,logger, sys)
Пример #16
0
def facebookAuthCallBack(request):
    try:
        if request.GET.get('code') != None:
            state = str(request.GET.get('state'))
            localprint(request, "fb call back session state are equal")
            code = str(request.GET.get('code'))
            client_id = FACEBOOK_APP_ID
            client_secret = FACEBOOK_APP_SECRET
            redirect_uri = FACEBOOK_APP_CALLBACK_URL
            exchangeToken_url = 'https://graph.facebook.com/oauth/access_token'
            #exchangeToken_url = 'https://graph.facebook.com/oauth/access_token?'+'&client_id='+client_id+'&redirect_uri='+redirect_uri+'&client_secret='+client_secret+'&code='+code
            headers = {'Content-Type': 'application/x-www-form-urlencoded'}
            data = {
                'client_id': client_id,
                'client_secret': client_secret,
                'redirect_uri': redirect_uri,
                'code': code
            }
            h = httplib2.Http(ca_certs=certifi.where())
            resp, content = h.request(exchangeToken_url,
                                      'POST',
                                      headers=headers,
                                      body=urlencode(data))
            #Extracting access_token from the content string
            localprint(request, content)
            fb_access_token = content.split('&')[0].split('=')[1]
            fb_profile_url = 'https://graph.facebook.com/me?access_token=' + fb_access_token
            h2 = httplib2.Http(ca_certs=certifi.where())
            user_info_resp, user_info_content = h2.request(
                fb_profile_url, 'GET')
            user_info_obj = simplejson.loads(user_info_content)
            localprint(request,
                       'fb user account email: ' + user_info_obj['email'])
            response = None
            if user_info_resp.status == 200:
                if state == 'userpage':
                    postToFacebookWall(fb_access_token,
                                       'Connected to Ttagit.com', request)
                    response = genericSocialActivate(
                        'facebook', user_info_obj['id'],
                        request.COOKIES['access_token'], request, state)
                elif state == 'homepage' or state == 'signin':
                    response = genericSocialLogin('facebook',
                                                  user_info_obj['id'],
                                                  user_info_obj['email'],
                                                  request, fb_access_token,
                                                  state)
            else:
                response = signinError(request, 'password',
                                       u"Sorry, the Facebook sign-in failed.")
            return response
        elif request.GET.get('request_ids') != None and request.GET.get(
                'app_request_type') != None:
            return redirect(paths.HTTPS + request.get_host())
        else:
            return HttpResponse("<script>window.close();</script>")
    except:
        logger = logging.getLogger(__name__)
        return errorscreen(request, logger, sys)
Пример #17
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)
Пример #18
0
def googleAuthCallback(request):
    try:
        state = request.GET.get('state')
        localprint(request, state)
        code = str(request.GET.get('code'))
        exchangeToken_url = 'https://accounts.google.com/o/oauth2/token'
        data = {
            'code': code,
            'client_id': GOOGLE_CLIENT_ID,
            'client_secret': GOOGLE_CLIENT_SECRET,
            'redirect_uri': GOOGLE_CALLBACK_URL,
            'grant_type': 'authorization_code'
        }
        headers = {'Content-Type': 'application/x-www-form-urlencoded'}
        h = httplib2.Http(ca_certs=certifi.where())
        resp, content = h.request(exchangeToken_url,
                                  'POST',
                                  headers=headers,
                                  body=urlencode(data))
        exchange_token_obj = simplejson.loads(content)
        localprint(request, exchange_token_obj)
        response = None
        if (exchange_token_obj.has_key('access_token')):
            access_token = exchange_token_obj['access_token']
            request.session['google_access_token'] = access_token
            profile_url = 'https://www.googleapis.com/oauth2/v1/userinfo?access_token=' + access_token
            h2 = httplib2.Http(ca_certs=certifi.where())
            user_info_resp, user_info_content = h2.request(profile_url, 'GET')
            user_info_obj = simplejson.loads(user_info_content)
            localprint(request, user_info_obj)
            if user_info_resp.status == 200:
                if state == 'userpage':
                    response = genericSocialActivate(
                        'googleplus', user_info_obj['id'],
                        request.COOKIES['access_token'], request, state
                    )  #access token has to be change to the right access_token
                elif state == 'homepage' or state == 'signin':
                    response = genericSocialLogin('googleplus',
                                                  user_info_obj['id'],
                                                  user_info_obj['email'],
                                                  request, access_token, state)
            else:
                response = signinError(request, 'password',
                                       u"Sorry, the Google sign-in failed.")
            return response
            #return response
        else:
            return HttpResponse("<script>window.close();</script>")
    except:
        logger = logging.getLogger(__name__)
        return errorscreen(request, logger, sys)
Пример #19
0
def facebookAuthCallBack(request):
    try :
        if request.GET.get('code') != None:
            state = str(request.GET.get('state'))
            localprint(request, "fb call back session state are equal")
            code = str(request.GET.get('code'))
            client_id=FACEBOOK_APP_ID
            client_secret=FACEBOOK_APP_SECRET
            redirect_uri=FACEBOOK_APP_CALLBACK_URL
            exchangeToken_url = 'https://graph.facebook.com/oauth/access_token'
            #exchangeToken_url = 'https://graph.facebook.com/oauth/access_token?'+'&client_id='+client_id+'&redirect_uri='+redirect_uri+'&client_secret='+client_secret+'&code='+code
            headers = {'Content-Type':'application/x-www-form-urlencoded'}
            data = {'client_id':client_id, 'client_secret':client_secret, 'redirect_uri':redirect_uri, 'code':code}
            h = httplib2.Http(ca_certs=certifi.where())
            resp, content = h.request(exchangeToken_url, 'POST', headers=headers, body=urlencode(data))
            #Extracting access_token from the content string
            localprint(request, content)
            fb_access_token = content.split('&')[0].split('=')[1]
            fb_profile_url = 'https://graph.facebook.com/me?access_token=' + fb_access_token
            h2 = httplib2.Http(ca_certs=certifi.where())
            user_info_resp, user_info_content = h2.request(fb_profile_url, 'GET')
            user_info_obj = simplejson.loads(user_info_content)
            localprint(request, 'fb user account email: ' + user_info_obj['email'])
            response = None
            if user_info_resp.status == 200:
                if state == 'userpage':
                    postToFacebookWall(fb_access_token, 'Connected to Ttagit.com',request)
                    response = genericSocialActivate('facebook', user_info_obj['id'], request.COOKIES['access_token'], request, state) 
                elif state == 'homepage' or state == 'signin':            
                    response = genericSocialLogin('facebook', user_info_obj['id'], user_info_obj['email'], request, fb_access_token, state)                
            else:
                response = signinError(request, 'password', u"Sorry, the Facebook sign-in failed.")
            return response
        elif request.GET.get('request_ids') != None and request.GET.get('app_request_type') != None:
            return redirect(paths.HTTPS+request.get_host())
        else:
            return HttpResponse("<script>window.close();</script>")
    except :
        logger=logging.getLogger(__name__)
        return errorscreen(request,logger, sys)
Пример #20
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)
Пример #21
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)
Пример #22
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)