Пример #1
0
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)
Пример #2
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)
Пример #3
0
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)
Пример #4
0
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)
Пример #5
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)
Пример #6
0
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)
Пример #7
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)
Пример #8
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)