def get_authsub_url(self, entity_id=None, params={'next_url':None, 'service':'docs'}): next_url = params.get('next_url') service = params.get('service', 'docs') source = params.get('source', 'evectors-ermconnector-v1') redirect_url="" decode = params.get('decode', False) if next_url and next_url!="": if service !="": #in ('docs', 'youtube'): gd_client = gdata.docs.service.DocsService(source=source) if decode: next=urllib.unquote(next_url) else: next=next_url scopes=list() for single_service in service.split(','): scopes=scopes+services_data[single_service]['scopes'] scopes = list(set(scopes))#services_data[service]['scopes'] secure = False session = True redirect_url=gdata.service.GenerateAuthSubRequestUrl(next, scopes, secure=secure, session=session) else: raise ApiError(None, 3941) return redirect_url else: raise ApiError(None, 3940)
def get_oauth_url(self, entity_id=None, params={'service':'docs'}): next_url=params.get('next_url', None) decode = params.get('decode', False) domain = params.get('domain', 'default') service = params.get('service', 'docs') consumer_key = params.get('consumer_key', GOOGLE_OAUTH_CONSUMER_KEY) consumer_secret = params.get('consumer_secret', GOOGLE_OAUTH_CONSUMER_SECRET) source = params.get('source', 'evectors-ermconnector-v1') if next_url and next_url!="": if service !="": #in ('docs', 'youtube'): if decode: next=urllib.unquote(next_url) else: next=next_url scopes=list() for single_service in service.split(','): scopes=scopes+services_data[single_service]['scopes'] scopes = list(set(scopes))#services_data[service]['scopes'] client = gdata.docs.client.DocsClient(source=source) request_token = client.GetOAuthToken(scopes, next, consumer_key, consumer_secret=consumer_secret) redirect_url=request_token.generate_authorization_url(google_apps_domain=domain) try: query=None pickled=base64.encodestring(pickle.dumps({"token":request_token, "next_url":next_url, "consumer_key":consumer_key, "consumer_secret":consumer_secret, "service":service, "source":source, "scopes":scopes })) token=request_token.token self.transaction_start() try: query=QUERY_CREATE_OAUTH_TABLE % (DM_DATABASE_NAME) self.do_query(query) except Exception, err: if not ("already exists" in ("%s" % err)): Logger().error("Error: %s (%s) - %s" % (err, query, Exception)) raise Exception, err try: query=QUERY_DELETE_OAUTH_RECORD % (DM_DATABASE_NAME,token, "googleConnector") self.do_query(query) except Exception, err: Logger().error("Error: %s (%s)" % (err, query)) raise Exception, err query=QUERY_ADD_OAUTH_RECORD % (DM_DATABASE_NAME, token, pickled, str(datetime.datetime.now()), "googleConnector") self.do_query(query) self.transaction_commit() except Exception, err: self.transaction_rollback() raise ApiError(None, 3102, "%s (%s): %s - [%s]" % (entity_id, err, query, Exception))