def verify_auth(request): """Take incoming request and validate it to create a valid AccessToken.""" service = get_model_instance(request.user, PACKAGE) service.auth.request_token.oauth_verify = request.GET.get('oauth_verifier') service.auth.request_token.save() if not generate_access_token(service, "https://twitter.com/oauth/access_token"): messages.error( request, 'Unable to validate your account with Twitter, please grant gargoyle.me access.' ) return HttpResponseRedirect(settings_redirect(request)) # Mark as setup completed service.setup = True # Test if service is protected on twitter's side # if so mark it twitter_user = get_user(service) if twitter_user.protected: service.public = False else: service.public = True service.save() return HttpResponseRedirect(settings_redirect(request))
def verify_auth(request): """Take incoming request and validate it to create a valid AccessToken.""" service = get_model_instance(request.user, PACKAGE) service.auth.request_token.oauth_verify = request.GET.get('oauth_verifier') service.auth.request_token.save() if not generate_access_token(service, service.app.auth_settings['access_token_url']): messages.error( request, 'Unable to validate your username with Flickr, please check grant permission for gargoyle.me to access your photos.' ) return HttpResponseRedirect(settings_redirect(request)) ## Mark as setup completed service.setup = True ## Test if service is protected on twitter's side ## if so mark it #twitter_user = get_user(service) #if twitter_user.protected: #service.public = False #else: #service.public = True service.save() return redirect(settings_redirect(request))
def auth(request): """We dont need a full oauth setup just a username.""" service = get_model_instance(request.user, PACKAGE_NAME) if service and request.method == 'POST': username = request.POST['username'] if username: user_feed = get_url('http://feeds.delicious.com/v2/json/%s' % (username,)) if username: # check the username is valid if user_feed[0]['d'] == '404 Not Found': messages.error(request, 'Unable to find username "%s", please try again' % (username,)) else: if not service.auth: auth_handler = Auth() else: auth_handler = service.auth auth_handler.username = username auth_handler.save() if not service.auth: service.auth = auth_handler service.setup = True service.public = True service.save() else: messages.error(request, 'Please enter a Delicious username') return redirect(settings_redirect(request))
def verify_auth(request): """Handle the redirect from foursquare as part of the oauth process. """ service = get_model_instance(request.user, PACKAGE) code = request.GET.get('code') url = "https://foursquare.com/oauth2/access_token?client_id=%s&client_secret=%s&grant_type=authorization_code&redirect_uri=%s&code=%s" % (service.app.auth_settings['consumer_key'], service.app.auth_settings['consumer_secret'], service.app.auth_settings['return_url'], code) access_token = get_url(url) if access_token.has_key('error'): messages.error(request, 'Unable to validate your with Foursquare, please wait a few minutes and retry.') else: at = AccessToken.objects.create( oauth_token = access_token["access_token"], oauth_token_secret = '', oauth_verify = '' ) service.auth.access_token = at service.auth.save() service.setup = True service.public = True service.save() return redirect(settings_redirect(request))
def auth(request): """We dont need a full oauth setup just a username.""" service = get_model_instance(request.user, MODULE_NAME) if service and request.method == 'POST': username = request.POST['username'] if username: # Delete existing token AccessToken.objects.filter(service=service).delete() # Before creating a new one AccessToken.objects.create( service=service, username=username, created=datetime.now(), api_token=service.app.oauth.consumer_key ) user_feed = get_data( None, 'http://feeds.delicious.com/v2/json/%s' % (username), disable_oauth=True) # check the username is valid if user_feed[0]['d'] == '404 Not Found': messages.error(request, 'Unable to find your username, please try again') else: service.setup = True service.public = True service.save() else: messages.error(request, 'Please enter a Delicious username') return redirect(settings_redirect(request))
def auth(request): """We dont need a full oauth setup just a username. """ service = get_model_instance(request.user, PACKAGE_NAME) if service and request.method == 'POST': username = request.POST['username'] if username: user_feed = get_url('http://ws.audioscrobbler.com/2.0/?method=user.getinfo&user=%s&api_key=%s&format=json' % ( username, service.app.auth_settings['api_key'])) #user_feed = get_data( #service, #'http://ws.audioscrobbler.com/2.0/?method=user.getinfo&user=%s&api_key=%s&format=json' % ( #username, #service.app.auth_settings['api_key'] #), #disable_oauth=True #) # check we have a valid username if user_feed.has_key('error'): messages.error( request, 'Unable to validate your username "%s" with Last.fm, please check your username and retry.' % ( username, ) ) return redirect(settings_redirect(request)) if not service.auth: auth_handler = Auth() else: auth_handler = service.auth auth_handler.username = username auth_handler.save() if not service.auth: service.auth = auth_handler service.setup = True service.public = True service.save() else: messages.error(request, 'Please enter a Last.fm username') return redirect(settings_redirect(request))
def auth(request): """We dont need a full oauth setup just a username. """ service = get_model_instance(request.user, PACKAGE) if service and request.method == 'POST': username = request.POST['username'] if username: user_feed = get_data( service, 'https://api.github.com/users/%s' % (username), disable_oauth=True ) if user_feed.has_key('message') and user_feed['message'] == "Not Found": messages.error(request, 'Unable to validate your username with github, please check your username and retry.') return redirect(settings_redirect(request)) if not service.auth: auth_handler = Auth() else: auth_handler = service.auth auth_handler.username = username auth_handler.save() if not service.auth: service.auth = auth_handler service.setup = True service.public = True service.save() else: messages.error(request, 'Please enter a github username') return redirect(settings_redirect(request))
def verify_auth(request): """Handle the redirect from foursquare as part of the oauth process.""" service = get_model_instance(request.user, MODULE_NAME) request_token = RequestToken.objects.get(service=service) request_token.oauth_verify = request.GET.get('oauth_verifier') request_token.save() generate_access_token(service, request_token) service.setup = True service.public = True service.save() request_token.delete() return redirect(settings_redirect(request))
def auth(request): """We dont need a full oauth setup just a username. """ # http://flickr.com/services/auth/?api_key=[api_key]&perms=[perms]&api_sig=[api_sig] service = get_model_instance(request.user, PACKAGE_NAME) if service and request.method == "POST": username = request.POST["username"] if username: # Talk to flickr to get a flickr ID 1234567@N0 style url = ( "http://api.flickr.com/services/rest/?method=flickr.people.findByUsername&api_key=%s&username=%s&format=json&nojsoncallback=1" % (service.app.auth_settings["api_key"], username) ) http_requester = httplib2.Http() resp, content = http_requester.request(url, "GET") if resp["status"] == "200": json = simplejson.loads(content) # Parse the request and check we have got back flickr id if json["stat"] == "ok": userid = json["user"]["id"] if not service.auth: auth_handler = Auth() else: auth_handler = service.auth auth_handler.username = username auth_handler.secret = userid auth_handler.save() if not service.auth: service.auth = auth_handler service.setup = True service.public = True service.save() else: messages.error( request, "Unable to validate your username with Flickr, please check your username and retry." ) else: messages.error(request, "Please enter a Flickr username") return redirect(settings_redirect(request))
def auth(request): """We dont need a full oauth setup just a username.""" service = get_model_instance(request.user, MODULE_NAME) if service and request.method == 'POST': username = request.POST['username'] if username: # talk to flickr to get a flickr ID 1234567@N0 style url = "http://api.flickr.com/services/rest/?method=flickr.people.findByUsername&api_key=%s&username=%s&format=json&nojsoncallback=1" % \ (service.app.oauth.consumer_key, username) http_requester = httplib2.Http() resp, content = http_requester.request(url, "GET") if resp['status'] == '200': json = simplejson.loads(content) # parse the request and check we have got back flickr id if json['stat'] == 'ok': userid = json['user']['id'] # Delete existing token AccessToken.objects.filter(service=service).delete() # Before creating a new one AccessToken.objects.create( service=service, username=username, userid=userid, created=datetime.now(), api_token=service.app.oauth.consumer_key ) service.setup = True service.public = True service.save() else: messages.error(request, 'Unable to validate your username with Flickr, please check your username and retry.') else: messages.error(request, 'Please enter a Flickr username') return redirect(settings_redirect(request))
def auth(request): """We dont need a full oauth setup just a username. """ service = get_model_instance(request.user, PACKAGE_NAME) if service and request.method == 'POST': username = request.POST['username'] if username: # Fetch the page and try to find the reader id url = "http://www.google.com/reader/shared/%s" % (username,) links = SoupStrainer('link') h = httplib2.Http() resp, content = h.request(url, "GET") parsed_links = [tag for tag in soup(str(content), parseOnlyThese=links)] if parsed_links: try: user_id = parsed_links[2].attrs[2][1].split('%2F')[1] if not service.auth: auth_handler = Auth() else: auth_handler = service.auth auth_handler.username = username auth_handler.secret = user_id auth_handler.save() if not service.auth: service.auth = auth_handler service.setup = True service.public = True service.save() except: messages.error( request, 'Unable to find Google Reader account with username "%s"' % (username,) ) else: messages.error( request, 'Unable to find Google Reader account with username "%s"' % (username,) ) else: messages.error(request, "Please enter a Google Reader username") return redirect(settings_redirect(request))
def auth(request): """We dont need a full oauth setup just a username.""" service = get_model_instance(request.user, MODULE_NAME) if service and request.method == 'POST': username = request.POST['username'] # Delete existing token AccessToken.objects.filter(service=service).delete() # Before creating a new one AccessToken.objects.create( service=service, username=username, created=datetime.now(), api_token=service.app.oauth.consumer_key ) service.setup = True service.public = True service.save() return redirect(settings_redirect(request))
def auth(request): """We dont need a full oauth setup just a username.""" service = get_model_instance(request.user, MODULE_NAME) if service and request.method == 'POST': username = request.POST['username'] if username: # fetch the page and try to find the reader id url = "http://www.google.com/reader/shared/%s" % username links = SoupStrainer('link') h = httplib2.Http() resp, content = h.request(url, "GET") parsed_links = [tag for tag in soup(str(content), parseOnlyThese=links)] if parsed_links: try: userid = parsed_links[2].attrs[2][1].split('%2F')[1] # Delete existing token AccessToken.objects.filter(service=service).delete() # Before creating a new one AccessToken.objects.create( service=service, username=username, userid=userid, created=datetime.now(), api_token=service.app.oauth.consumer_key ) service.setup = True service.public = True service.save() except: messages.error(request, "Unable to find Google Reader account with that username") else: messages.error(request, "Unable to find Google Reader account with that username") else: messages.error(request, "Please enter a Google Reader username") return redirect(settings_redirect(request))
def verify_auth(request): """Handle reply from github""" """Take incoming request and validate it to create a valid AccessToken.""" try: service = get_model_instance(request.user, PACKAGE) code = request.GET.get('code') if code: # swap our newly aquired code for a everlasting signed "token" reply = get_url('https://github.com/login/oauth/access_token?client_id=%s&client_secret=%s&code=%s' % ( service.app.auth_settings['api_key'], service.app.auth_settings['api_secret'], code), json=False, method="POST", disable_ssl=True) if not reply.startswith('access_token'): raise Exception('Token Failure') access, perm_type = reply.split('&') service.auth.access_token = AccessToken.objects.create( oauth_token = access.split('=')[1], oauth_token_secret = access.split('=')[1], ) service.auth.save() # Mark as setup completed service.setup = True service.save() except: messages.error( request, 'Unable to validate your account with GitHub, please grant permission for gargoyle.me to access your account.' ) return redirect(settings_redirect(request))
def verify_auth(request): """Get the values back from facebook and store them for use later.""" service = get_model_instance(request.user, PACKAGE) code = request.GET.get('code') if request.is_secure(): scheme = "https://" else: scheme = "http://" base_url = "%s%s" % (scheme, request.get_host(),) callback = "%s%s" % (base_url, reverse('causal-facebook-callback'),) url = "https://graph.facebook.com/oauth/access_token&code=%s&client_secret=%s&redirect_uri=%s&client_id=%s" % ( code, service.app.auth_settings['consumer_secret'], callback, service.app.auth_settings['app_id'] ) response = cgi.parse_qs(urllib.urlopen(url).read()) if response.has_key('access_token'): at = AccessToken.objects.create( oauth_token=''.join(response["access_token"]), oauth_token_secret='', oauth_verify='' ) service.auth.access_token = at service.auth.save() service.setup = True service.public = True service.save() messages.success(request, 'Connection to Facebook complete.') else: messages.error(request, 'There was an error connnecting to Facebook.') return redirect(settings_redirect(request))
def verify_auth(request): """Take incoming request and validate it to create a valid AccessToken.""" service = get_model_instance(request.user, MODULE_NAME) request_token = RequestToken.objects.get(service=service) request_token.oauth_verify = request.GET.get('oauth_verifier') request_token.save() generate_access_token(service, request_token) # Mark as setup completed service.setup = True # test if service is protected on twitter's side # if so mark it service_auth = _auth(service.app.oauth) user = tweepy.API(service_auth).get_user('twitter') service.public = False if not user.protected: service.public = True service.save() request_token.delete() return HttpResponseRedirect(settings_redirect(request))
def auth(request): """We dont need a full oauth setup just a username.""" service = get_model_instance(request.user, MODULE_NAME) if service and request.method == 'POST': username = request.POST['username'] if username: # Delete existing token AccessToken.objects.filter(service=service).delete() user_feed = get_data( None, 'http://ws.audioscrobbler.com/2.0/?method=user.getrecenttracks&user=%s&api_key=%s&format=json' % (username, service.app.oauth.consumer_key), disable_oauth=True) # check we have a valid username if not user_feed.has_key('error') and user_feed['error'] != 6: # Before creating a new one AccessToken.objects.create( service=service, username=username, created=datetime.now(), api_token=service.app.oauth.consumer_key ) service.setup = True service.public = True service.save() else: messages.error(request, 'Unable to validate your username with Last.fm, please check your username and retry.') else: messages.error(request, 'Please enter a Last.fm username') return redirect(settings_redirect(request))
def verify_auth(request): """Get the values back from facebook and store them for use later.""" service = get_model_instance(request.user, MODULE_NAME) code = request.GET.get('code') callback = "%s%s" % (service.app.oauth.callback_url_base, reverse('causal-facebook-callback'),) url = "%s&code=%s&client_secret=%s&redirect_uri=%s&client_id=%s" % ( service.app.oauth.access_token_url, code, service.app.oauth.consumer_secret, callback, service.app.oauth.consumer_key ) response = cgi.parse_qs(urllib.urlopen(url).read()) if response.has_key('access_token'): # Delete existing token AccessToken.objects.filter(service=service).delete() # Before creating a new one AccessToken.objects.create( service=service, oauth_token=''.join(response["access_token"]), oauth_token_secret='', created=datetime.now(), oauth_verify='' ) service.setup = True service.public = True service.save() messages.success(request, 'Connection to Facebook complete.') else: messages.error(request, 'There was an error connnecting to Facebook.') return redirect(settings_redirect(request))
def auth(request): """We dont need a full oauth setup just a username.""" service = get_model_instance(request.user, MODULE_NAME) if service and request.method == 'POST': username = request.POST['username'] if username: # Delete existing token AccessToken.objects.filter(service=service).delete() # Before creating a new one AccessToken.objects.create( service=service, username=username, created=datetime.now(), api_token=service.app.oauth.consumer_key ) user_feed = get_data( None, 'http://github.com/%s.json' % (username), disable_oauth=True) # check the username is valid if user_feed.has_key('error'): messages.error(request, 'Unable to validate your username with Git Hub, please check your username and retry.') else: service.setup = True service.public = True service.save() else: messages.error(request, 'Please enter a GitHub username') return redirect(settings_redirect(request))