Block google services users to use isolines functions
Due some service restrictions, google services users couldn't use the HERE services which includes the isolines functions.
This commit is contained in:
parent
926655fdf9
commit
d27b2a2b78
@ -87,6 +87,9 @@ RETURNS SETOF cdb_dataservices_server.isoline AS $$
|
|||||||
user_isolines_config = GD["user_isolines_routing_config_{0}".format(username)]
|
user_isolines_config = GD["user_isolines_routing_config_{0}".format(username)]
|
||||||
type = 'isodistance'
|
type = 'isodistance'
|
||||||
|
|
||||||
|
if user_isolines_config.google_services_user:
|
||||||
|
plpy.error('This service is not available for google service users.')
|
||||||
|
|
||||||
here_plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_here_routing_isolines($1, $2, $3, $4, $5, $6, $7) as isoline; ", ["text", "text", "text", "geometry(Geometry, 4326)", "text", "integer[]", "text[]"])
|
here_plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_here_routing_isolines($1, $2, $3, $4, $5, $6, $7) as isoline; ", ["text", "text", "text", "geometry(Geometry, 4326)", "text", "integer[]", "text[]"])
|
||||||
result = plpy.execute(here_plan, [username, orgname, type, source, mode, range, options])
|
result = plpy.execute(here_plan, [username, orgname, type, source, mode, range, options])
|
||||||
isolines = []
|
isolines = []
|
||||||
@ -106,6 +109,9 @@ RETURNS SETOF cdb_dataservices_server.isoline AS $$
|
|||||||
user_isolines_config = GD["user_isolines_routing_config_{0}".format(username)]
|
user_isolines_config = GD["user_isolines_routing_config_{0}".format(username)]
|
||||||
type = 'isochrone'
|
type = 'isochrone'
|
||||||
|
|
||||||
|
if user_isolines_config.google_services_user:
|
||||||
|
plpy.error('This service is not available for google service users.')
|
||||||
|
|
||||||
here_plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_here_routing_isolines($1, $2, $3, $4, $5, $6, $7) as isoline; ", ["text", "text", "text", "geometry(Geometry, 4326)", "text", "integer[]", "text[]"])
|
here_plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_here_routing_isolines($1, $2, $3, $4, $5, $6, $7) as isoline; ", ["text", "text", "text", "geometry(Geometry, 4326)", "text", "integer[]", "text[]"])
|
||||||
result = plpy.execute(here_plan, [username, orgname, type, source, mode, range, options])
|
result = plpy.execute(here_plan, [username, orgname, type, source, mode, range, options])
|
||||||
isolines = []
|
isolines = []
|
||||||
|
@ -866,6 +866,9 @@ RETURNS SETOF cdb_dataservices_server.isoline AS $$
|
|||||||
user_isolines_config = GD["user_isolines_routing_config_{0}".format(username)]
|
user_isolines_config = GD["user_isolines_routing_config_{0}".format(username)]
|
||||||
type = 'isodistance'
|
type = 'isodistance'
|
||||||
|
|
||||||
|
if user_isolines_config.google_services_user:
|
||||||
|
plpy.error('This service is not available for google service users.')
|
||||||
|
|
||||||
here_plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_here_routing_isolines($1, $2, $3, $4, $5, $6, $7) as isoline; ", ["text", "text", "text", "geometry(Geometry, 4326)", "text", "integer[]", "text[]"])
|
here_plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_here_routing_isolines($1, $2, $3, $4, $5, $6, $7) as isoline; ", ["text", "text", "text", "geometry(Geometry, 4326)", "text", "integer[]", "text[]"])
|
||||||
result = plpy.execute(here_plan, [username, orgname, type, source, mode, range, options])
|
result = plpy.execute(here_plan, [username, orgname, type, source, mode, range, options])
|
||||||
isolines = []
|
isolines = []
|
||||||
@ -884,6 +887,9 @@ RETURNS SETOF cdb_dataservices_server.isoline AS $$
|
|||||||
user_isolines_config = GD["user_isolines_routing_config_{0}".format(username)]
|
user_isolines_config = GD["user_isolines_routing_config_{0}".format(username)]
|
||||||
type = 'isochrone'
|
type = 'isochrone'
|
||||||
|
|
||||||
|
if user_isolines_config.google_services_user:
|
||||||
|
plpy.error('This service is not available for google service users.')
|
||||||
|
|
||||||
here_plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_here_routing_isolines($1, $2, $3, $4, $5, $6, $7) as isoline; ", ["text", "text", "text", "geometry(Geometry, 4326)", "text", "integer[]", "text[]"])
|
here_plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_here_routing_isolines($1, $2, $3, $4, $5, $6, $7) as isoline; ", ["text", "text", "text", "geometry(Geometry, 4326)", "text", "integer[]", "text[]"])
|
||||||
result = plpy.execute(here_plan, [username, orgname, type, source, mode, range, options])
|
result = plpy.execute(here_plan, [username, orgname, type, source, mode, range, options])
|
||||||
isolines = []
|
isolines = []
|
||||||
|
@ -6,6 +6,9 @@ RETURNS SETOF cdb_dataservices_server.isoline AS $$
|
|||||||
user_isolines_config = GD["user_isolines_routing_config_{0}".format(username)]
|
user_isolines_config = GD["user_isolines_routing_config_{0}".format(username)]
|
||||||
type = 'isodistance'
|
type = 'isodistance'
|
||||||
|
|
||||||
|
if user_isolines_config.google_services_user:
|
||||||
|
plpy.error('This service is not available for google service users.')
|
||||||
|
|
||||||
here_plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_here_routing_isolines($1, $2, $3, $4, $5, $6, $7) as isoline; ", ["text", "text", "text", "geometry(Geometry, 4326)", "text", "integer[]", "text[]"])
|
here_plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_here_routing_isolines($1, $2, $3, $4, $5, $6, $7) as isoline; ", ["text", "text", "text", "geometry(Geometry, 4326)", "text", "integer[]", "text[]"])
|
||||||
result = plpy.execute(here_plan, [username, orgname, type, source, mode, range, options])
|
result = plpy.execute(here_plan, [username, orgname, type, source, mode, range, options])
|
||||||
isolines = []
|
isolines = []
|
||||||
|
@ -6,6 +6,9 @@ RETURNS SETOF cdb_dataservices_server.isoline AS $$
|
|||||||
user_isolines_config = GD["user_isolines_routing_config_{0}".format(username)]
|
user_isolines_config = GD["user_isolines_routing_config_{0}".format(username)]
|
||||||
type = 'isochrone'
|
type = 'isochrone'
|
||||||
|
|
||||||
|
if user_isolines_config.google_services_user:
|
||||||
|
plpy.error('This service is not available for google service users.')
|
||||||
|
|
||||||
here_plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_here_routing_isolines($1, $2, $3, $4, $5, $6, $7) as isoline; ", ["text", "text", "text", "geometry(Geometry, 4326)", "text", "integer[]", "text[]"])
|
here_plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_here_routing_isolines($1, $2, $3, $4, $5, $6, $7) as isoline; ", ["text", "text", "text", "geometry(Geometry, 4326)", "text", "integer[]", "text[]"])
|
||||||
result = plpy.execute(here_plan, [username, orgname, type, source, mode, range, options])
|
result = plpy.execute(here_plan, [username, orgname, type, source, mode, range, options])
|
||||||
isolines = []
|
isolines = []
|
||||||
|
@ -32,7 +32,7 @@ class IsolinesRoutingConfig(ServiceConfig):
|
|||||||
|
|
||||||
ROUTING_CONFIG_KEYS = ['here_isolines_quota', 'soft_here_isolines_limit',
|
ROUTING_CONFIG_KEYS = ['here_isolines_quota', 'soft_here_isolines_limit',
|
||||||
'period_end_date', 'username', 'orgname',
|
'period_end_date', 'username', 'orgname',
|
||||||
'heremaps_app_id', 'heremaps_app_code']
|
'heremaps_app_id', 'heremaps_app_code', 'geocoder_type']
|
||||||
NOKIA_APP_ID_KEY = 'heremaps_app_id'
|
NOKIA_APP_ID_KEY = 'heremaps_app_id'
|
||||||
NOKIA_APP_CODE_KEY = 'heremaps_app_code'
|
NOKIA_APP_CODE_KEY = 'heremaps_app_code'
|
||||||
QUOTA_KEY = 'here_isolines_quota'
|
QUOTA_KEY = 'here_isolines_quota'
|
||||||
@ -40,6 +40,8 @@ class IsolinesRoutingConfig(ServiceConfig):
|
|||||||
USERNAME_KEY = 'username'
|
USERNAME_KEY = 'username'
|
||||||
ORGNAME_KEY = 'orgname'
|
ORGNAME_KEY = 'orgname'
|
||||||
PERIOD_END_DATE = 'period_end_date'
|
PERIOD_END_DATE = 'period_end_date'
|
||||||
|
GEOCODER_TYPE_KEY = 'geocoder_type'
|
||||||
|
GOOGLE_GEOCODER = 'google'
|
||||||
|
|
||||||
def __init__(self, redis_connection, username, orgname=None,
|
def __init__(self, redis_connection, username, orgname=None,
|
||||||
heremaps_app_id=None, heremaps_app_code=None):
|
heremaps_app_id=None, heremaps_app_code=None):
|
||||||
@ -74,6 +76,7 @@ class IsolinesRoutingConfig(ServiceConfig):
|
|||||||
user_config[self.PERIOD_END_DATE] = org_config[self.PERIOD_END_DATE]
|
user_config[self.PERIOD_END_DATE] = org_config[self.PERIOD_END_DATE]
|
||||||
|
|
||||||
def __parse_config(self, filtered_config):
|
def __parse_config(self, filtered_config):
|
||||||
|
self._geocoder_type = filtered_config[self.GEOCODER_TYPE_KEY].lower()
|
||||||
self._isolines_quota = float(filtered_config[self.QUOTA_KEY])
|
self._isolines_quota = float(filtered_config[self.QUOTA_KEY])
|
||||||
self._period_end_date = date_parse(filtered_config[self.PERIOD_END_DATE])
|
self._period_end_date = date_parse(filtered_config[self.PERIOD_END_DATE])
|
||||||
if filtered_config[self.SOFT_LIMIT_KEY].lower() == 'true':
|
if filtered_config[self.SOFT_LIMIT_KEY].lower() == 'true':
|
||||||
@ -107,6 +110,10 @@ class IsolinesRoutingConfig(ServiceConfig):
|
|||||||
def heremaps_app_code(self):
|
def heremaps_app_code(self):
|
||||||
return self._heremaps_app_code
|
return self._heremaps_app_code
|
||||||
|
|
||||||
|
@property
|
||||||
|
def google_services_user(self):
|
||||||
|
return self._geocoder_type == self.GOOGLE_GEOCODER
|
||||||
|
|
||||||
|
|
||||||
class InternalGeocoderConfig(ServiceConfig):
|
class InternalGeocoderConfig(ServiceConfig):
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user