Skip to content

Commit

Permalink
Move url checks after unicode conversion
Browse files Browse the repository at this point in the history
  • Loading branch information
Zharktas committed Aug 10, 2017
1 parent 5fcf2bf commit fde0019
Showing 1 changed file with 9 additions and 8 deletions.
17 changes: 9 additions & 8 deletions ckan/lib/helpers.py
Expand Up @@ -153,21 +153,22 @@ def redirect_to(*args, **kw):
toolkit.redirect_to('dataset_read', id='changed')
'''
if are_there_flash_messages():
kw['__no_cache__'] = True

# Routes router doesn't like unicode args
uargs = map(lambda arg: str(arg) if isinstance(arg, unicode) else arg,
args)

# Remove LANG from root_path so that we do not need to parse locales
root_path = config.get('ckan.root_path', None)
if root_path:
root_path = re.sub('/{{LANG}}', '', root_path)

# If args contain full url eg. http://example.com or url starting with root_path skip url parsing
if args and (is_url(args[0]) or ( root_path and args[0].startswith(root_path))) :
return _routes_redirect_to(args[0])
if uargs and (is_url(uargs[0]) or ( root_path and uargs[0].startswith(root_path))) :
return _routes_redirect_to(uargs[0])

if are_there_flash_messages():
kw['__no_cache__'] = True

# Routes router doesn't like unicode args
uargs = map(lambda arg: str(arg) if isinstance(arg, unicode) else arg,
args)
_url = url_for(*uargs, **kw)
if _url.startswith('/'):
_url = str(config['ckan.site_url'].rstrip('/') + _url)
Expand Down

0 comments on commit fde0019

Please sign in to comment.