def getAccessToken(user): """Returns access token for an user. """ access_token = memcache.get("%s;%s" % (user.key().name(), system.getRawHostname()), namespace='access_token') if isinstance(access_token, auth.OAuthToken): return access_token
def key(entity): """Returns the memcache key for an entities homepage. """ host = system.getRawHostname() version = system.getAppVersion() kind = entity.kind() key = entity.key().id_or_name() return 'homepage_for_%s_%s_%s_%s' % (host, version, kind, key)
def testGetRawHostName(self): """Tests that a correct raw host name is returned. """ try: host = os.environ['HTTP_HOST'] = 'some.testing.host.tld' expected_current_host = host self.assertEqual(system.getRawHostname(), expected_current_host) finally: if self.default_host is None: del os.environ['HTTP_HOST'] else: os.environ['HTTP_HOST'] = self.default_host try: expected_host = os.environ['HTTP_HOST'] = '' self.assertEqual(system.getRawHostname(), expected_host) finally: if self.default_host is None: del os.environ['HTTP_HOST'] else: os.environ['HTTP_HOST'] = self.default_host
def generateOAuthRedirectURL(service, user, next): """Returns OAuth redirect URL for authenticating user. """ req_token = service.FetchOAuthRequestToken( scopes=settings.GDATA_SCOPES, oauth_callback='http://%s%s' % (system.getRawHostname(), next)) memcache.add(user.key().name(), req_token.secret, 300, namespace='request_token_secret') approval_page_url = service.GenerateOAuthAuthorizationURL( extra_params={'hd': 'default'}) return approval_page_url
def checkOAuthVerifier(service, data): """Checks for OAuth verifier and exchanges token with access token. """ request = data.request user = data.user oauth_token = auth.OAuthTokenFromUrl( request.get_full_path()) if oauth_token: oauth_token.secret = memcache.get(user.key().name(), namespace='request_token_secret') oauth_token.oauth_input_params = service.GetOAuthInputParameters() service.SetOAuthToken(oauth_token) oauth_verifier = request.GET.get('oauth_verifier', '') access_token = service.UpgradeToOAuthAccessToken( oauth_verifier=oauth_verifier) if access_token: memcache.set('%s;%s' % (user.key().name(), system.getRawHostname()), access_token, namespace='access_token')
def deleteAccessToken(user): """Deletes access token of user. """ memcache.set("%s;%s" % (user.key().name(), system.getRawHostname()), None, namespace='access_token')