Esempio n. 1
0
def whitelisted( email ):
	sheetUrlFormat = 'http://spreadsheets.google.com/feeds/list/%s/public/values?alt=json&sq=%s'
	whitelist = private.config['whitelist']
	if not whitelist['enabled']:
		return True
	query = quote( 'emailaddress="%s"' % email )
	url = sheetUrlFormat %( whitelist['sheet'], query )
	try:
		response = urlfetch.fetch(
			method = 'GET',
			url = url
		)
		if response.status_code != 200:
			return False
		rows = json_decode( response.content )['feed']['entry']
		row = rows[0]
	except:
		return False
	testuser = row['gsx$testuser']['$t']
	#stableuser = row['gsx$stableuser']['$t']
	if testuser != '':
		return True
	#if stableuser != '':
	#	return True
	return 'pending'  # email is in whitelist table but not approved
Esempio n. 2
0
    def _on_twitter_request(self, callback, response):
        if not response:
            logging.warning('Could not get Twitter request token.')
            return callback(None)
        elif response.status_code < 200 or response.status_code >= 300:
            logging.warning('Invalid Twitter response (%d): %s',
                            response.status_code, response.content)
            return callback(None)

        return callback(json_decode(response.content))
Esempio n. 3
0
    def _on_twitter_request(self, callback, response):
        if not response:
            logging.warning('Could not get Twitter request token.')
            return callback(None)
        elif response.status_code < 200 or response.status_code >= 300:
            logging.warning('Invalid Twitter response (%d): %s',
                response.status_code, response.content)
            return callback(None)

        return callback(json_decode(response.content))
Esempio n. 4
0
    def _on_friendfeed_request(self, callback, response):
        if not response:
            logging.warning('Could not get a FriendFeed response.')
            return callback(None)
        elif response.status_code < 200 or response.status_code >= 300:
            logging.warning('Invalid FriendFeed response (%d): %s',
                            response.status_code, response.content)
            return callback(None)

        return callback(json_decode(response.content))
Esempio n. 5
0
    def _on_friendfeed_request(self, callback, response):
        if not response:
            logging.warning('Could not get a FriendFeed response.')
            return callback(None)
        elif response.status_code < 200 or response.status_code >= 300:
            logging.warning('Invalid FriendFeed response (%d): %s',
                response.status_code, response.content)
            return callback(None)

        return callback(json_decode(response.content))
Esempio n. 6
0
	def clip( self, image ):
		key = db.Key( current_handler.session['current_place'] )
		if key is None:
			return image
		place = db.get( key )
		if place is None:
			return image
		if place.owner != current_handler.auth.user.auth_id:
			return image
		g = json_decode( place.geojson )
		coords = g['features'][0]['geometry']['coordinates']
		return self.image( 'ClipToMultiPolygon', image, coords )
Esempio n. 7
0
    def get_authenticated_user(self, callback):
        """Fetches the authenticated Facebook user.

        The authenticated user includes the special Facebook attributes
        'session_key' and 'facebook_uid' in addition to the standard
        user attributes like 'name'.
        """
        session = json_decode(self.request.args.get('session'))
        return self.facebook_request(
            method='facebook.users.getInfo',
            callback=functools.partial(
                self._on_get_user_info, callback, session),
            session_key=session['session_key'],
            uids=session['uid'],
            fields='uid,first_name,last_name,name,locale,pic_square,' \
                   'profile_url,username')
Esempio n. 8
0
    def get_authenticated_user(self, callback):
        """Fetches the authenticated Facebook user.

        The authenticated user includes the special Facebook attributes
        'session_key' and 'facebook_uid' in addition to the standard
        user attributes like 'name'.
        """
        session = json_decode(self.request.args.get('session'))
        return self.facebook_request(
            method='facebook.users.getInfo',
            callback=functools.partial(
                self._on_get_user_info, callback, session),
            session_key=session['session_key'],
            uids=session['uid'],
            fields='uid,first_name,last_name,name,locale,pic_square,' \
                   'profile_url,username')
Esempio n. 9
0
    def _parse_response(self, callback, response):
        if not response:
            logging.warning('Missing Facebook response.')
            return callback(None)
        elif response.status_code < 200 or response.status_code >= 300:
            logging.warning('HTTP error from Facebook (%d): %s',
                response.status_code, response.content)
            return callback(None)

        try:
            json = json_decode(response.content)
        except:
            logging.warning('Invalid JSON from Facebook: %r', response.content)
            return callback(None)

        if isinstance(json, dict) and json.get('error_code'):
            logging.warning('Facebook error: %d: %r', json['error_code'],
                            json.get('error_msg'))
            return callback(None)

        return callback(json)
Esempio n. 10
0
    def _parse_response(self, callback, response):
        if not response:
            logging.warning('Missing Facebook response.')
            return callback(None)
        elif response.status_code < 200 or response.status_code >= 300:
            logging.warning('HTTP error from Facebook (%d): %s',
                            response.status_code, response.content)
            return callback(None)

        try:
            json = json_decode(response.content)
        except:
            logging.warning('Invalid JSON from Facebook: %r', response.content)
            return callback(None)

        if isinstance(json, dict) and json.get('error_code'):
            logging.warning('Facebook error: %d: %r', json['error_code'],
                            json.get('error_msg'))
            return callback(None)

        return callback(json)
Esempio n. 11
0
	def _http( self, method, url, params=None ):
		logging.info( 'EarthEngine %s:\n%s', url, params )
		try:
			response = urlfetch.fetch(
				method = method,
				url = self.url + url,
				payload = params,
				deadline = 10
			)
			if response.status_code == 200:
				json = json_decode( response.content )
			else:
				json = { 'error': { 'type':'http', 'code': response.status_code } }
		except urlfetch.DeadlineExceededError:
			json = { 'error': { 'type':'DeadlineExceededError' } }
		except urlfetch.DownloadError:
			json = { 'error': { 'type':'DownloadError' } }
		except urlfetch.ResponseTooLargeError:
			json = { 'error': { 'type':'ResponseTooLargeError' } }
		except:
			json = { 'error': { 'type':'Other' } }
		finally:
			return json
Esempio n. 12
0
 def test_json_decode(self):
     self.assertEqual(json_decode('"<script>alert(\\"hello\\")<\\/script>"'), '<script>alert("hello")</script>')
Esempio n. 13
0
 def make_value_from_datastore(self, value):
     """Decodes the value from JSON."""
     if value is not None:
         return json_decode(value)
Esempio n. 14
0
 def make_value_from_datastore(self, value):
     """Decodes the value from JSON."""
     if value is not None:
         return json_decode(value)
Esempio n. 15
0
 def test_json_decode(self):
     self.assertEqual(
         json_decode('"<script>alert(\\"hello\\")<\\/script>"'),
         '<script>alert("hello")</script>')