diff --git a/ckan/logic/converters.py b/ckan/logic/converters.py index f6a844afb99..17e355dac10 100644 --- a/ckan/logic/converters.py +++ b/ckan/logic/converters.py @@ -181,3 +181,9 @@ def convert_to_json_if_string(value, context): raise df.Invalid(_('Could not parse as valid JSON')) else: return value + + +def remove_whitespace(value, context): + if isinstance(value, basestring): + return value.strip() + return value diff --git a/ckan/logic/schema.py b/ckan/logic/schema.py index e9bd4077260..2cf78df78f6 100644 --- a/ckan/logic/schema.py +++ b/ckan/logic/schema.py @@ -57,6 +57,7 @@ convert_package_name_or_id_to_id, convert_group_name_or_id_to_id, convert_to_json_if_string, + remove_whitespace, ) from formencode.validators import OneOf import ckan.model @@ -69,7 +70,7 @@ def default_resource_schema(): 'revision_id': [ignore_missing, unicode], 'resource_group_id': [ignore], 'package_id': [ignore], - 'url': [not_empty, unicode],#, URL(add_http=False)], + 'url': [not_empty, unicode, remove_whitespace],#, URL(add_http=False)], 'description': [ignore_missing, unicode], 'format': [ignore_missing, unicode], 'hash': [ignore_missing, unicode],