Skip to content

Commit

Permalink
Merge branch '3194-fix-redirects' into 3196-common-requests-code
Browse files Browse the repository at this point in the history
  • Loading branch information
amercader committed Aug 23, 2016
2 parents b13e8ac + 0884cdc commit 9b0be76
Show file tree
Hide file tree
Showing 7 changed files with 32 additions and 33 deletions.
45 changes: 19 additions & 26 deletions ckan/controllers/package.py
Expand Up @@ -30,7 +30,6 @@

render = base.render
abort = base.abort
redirect = base.redirect

NotFound = logic.NotFound
NotAuthorized = logic.NotAuthorized
Expand Down Expand Up @@ -569,8 +568,8 @@ def resource_edit(self, id, resource_id, data=None, errors=None,
errors, error_summary)
except NotAuthorized:
abort(403, _('Unauthorized to edit this resource'))
redirect(h.url_for(controller='package', action='resource_read',
id=id, resource_id=resource_id))
h.redirect_to(controller='package', action='resource_read', id=id,
resource_id=resource_id)

context = {'model': model, 'session': model.Session,
'api_version': 3, 'for_edit': True,
Expand Down Expand Up @@ -639,8 +638,7 @@ def new_resource(self, id, data=None, errors=None, error_summary=None):
if not data_provided and save_action != "go-dataset-complete":
if save_action == 'go-dataset':
# go to final stage of adddataset
redirect(h.url_for(controller='package',
action='edit', id=id))
h.redirect_to(controller='package', action='edit', id=id)
# see if we have added any resources
try:
data_dict = get_action('package_show')(context, {'id': id})
Expand All @@ -656,8 +654,8 @@ def new_resource(self, id, data=None, errors=None, error_summary=None):

if asbool(config.get('ckan.legacy_templates')):
h.flash_error(msg)
redirect(h.url_for(controller='package',
action='new_resource', id=id))
h.redirect_to(controller='package',
action='new_resource', id=id)
else:
errors = {}
error_summary = {_('Error'): msg}
Expand All @@ -668,8 +666,7 @@ def new_resource(self, id, data=None, errors=None, error_summary=None):
get_action('package_update')(
dict(context, allow_state_change=True),
dict(data_dict, state='active'))
redirect(h.url_for(controller='package',
action='read', id=id))
h.redirect_to(controller='package', action='read', id=id)

data['package_id'] = id
try:
Expand All @@ -693,20 +690,17 @@ def new_resource(self, id, data=None, errors=None, error_summary=None):
get_action('package_update')(
dict(context, allow_state_change=True),
dict(data_dict, state='active'))
redirect(h.url_for(controller='package',
action='read', id=id))
h.redirect_to(controller='package', action='read', id=id)
elif save_action == 'go-dataset':
# go to first stage of add dataset
redirect(h.url_for(controller='package',
action='edit', id=id))
h.redirect_to(controller='package', action='edit', id=id)
elif save_action == 'go-dataset-complete':
# go to first stage of add dataset
redirect(h.url_for(controller='package',
action='read', id=id))
h.redirect_to(controller='package', action='read', id=id)
else:
# add more resources
redirect(h.url_for(controller='package',
action='new_resource', id=id))
h.redirect_to(controller='package', action='new_resource',
id=id)

# get resources for sidebar
context = {'model': model, 'session': model.Session,
Expand Down Expand Up @@ -901,7 +895,7 @@ def _save_new(self, context, package_type=None):
url = h.url_for(controller='package',
action='new_resource',
id=pkg_dict['name'])
redirect(url)
h.redirect_to(url)
# Make sure we don't index this dataset
if request.params['save'] not in ['go-resource',
'go-metadata']:
Expand All @@ -918,7 +912,7 @@ def _save_new(self, context, package_type=None):
url = h.url_for(controller='package',
action='new_resource',
id=pkg_dict['name'])
redirect(url)
h.redirect_to(url)

self._form_save_redirect(pkg_dict['name'], 'new',
package_type=package_type)
Expand Down Expand Up @@ -1005,7 +999,7 @@ def _form_save_redirect(self, pkgname, action, package_type=None):
id=pkgname)
else:
url = h.url_for('{0}_read'.format(package_type), id=pkgname)
redirect(url)
h.redirect_to(url)

def delete(self, id):

Expand Down Expand Up @@ -1160,7 +1154,7 @@ def resource_download(self, id, resource_id, filename=None):
return app_iter
elif not 'url' in rsc:
abort(404, _('No download is available'))
redirect(rsc['url'])
h.redirect_to(rsc['url'])

def follow(self, id):
'''Start following this dataset.'''
Expand Down Expand Up @@ -1259,8 +1253,7 @@ def groups(self, id):
get_action('member_delete')(context, data_dict)
except NotFound:
abort(404, _('Group not found'))
redirect(h.url_for(controller='package',
action='groups', id=id))
h.redirect_to(controller='package', action='groups', id=id)

context['is_member'] = True
users_groups = get_action('group_list_authz')(context, data_dict)
Expand Down Expand Up @@ -1472,9 +1465,9 @@ def edit_view(self, id, resource_id, view_id=None):
abort(403, _('Unauthorized to edit resource'))
else:
if not to_preview:
redirect(h.url_for(controller='package',
action='resource_views',
id=id, resource_id=resource_id))
h.redirect_to(controller='package',
action='resource_views',
id=id, resource_id=resource_id)

## view_id exists only when updating
if view_id:
Expand Down
2 changes: 1 addition & 1 deletion ckan/controllers/util.py
Expand Up @@ -18,7 +18,7 @@ def redirect(self):
base.abort(400, _('Missing Value') + ': url')

if h.url_is_local(url):
return base.redirect(url)
return h.redirect_to(url)
else:
base.abort(403, _('Redirecting to external site is not allowed.'))

Expand Down
1 change: 0 additions & 1 deletion ckan/lib/base.py
Expand Up @@ -10,7 +10,6 @@
from pylons import cache, session
from pylons.controllers import WSGIController
from pylons.controllers.util import abort as _abort
from pylons.controllers.util import redirect_to, redirect

This comment has been minimized.

Copy link
@mattfullerton
from pylons.decorators import jsonify
from pylons.i18n import N_, gettext, ngettext
from pylons.templating import cached_template, pylons_globals
Expand Down
7 changes: 7 additions & 0 deletions ckan/tests/helpers.py
Expand Up @@ -19,6 +19,7 @@
This module is reserved for these very useful functions.
'''
import urlparse
import webtest
import nose.tools
from nose.tools import assert_in, assert_not_in
Expand Down Expand Up @@ -214,6 +215,12 @@ def submit_and_follow(app, form, extra_environ=None, name=None,
Call webtest_submit with name/value passed expecting a redirect
and return the response from following that redirect.
'''
if extra_environ is None:
extra_environ = {}
if not extra_environ.get('HTTP_HOST'):
extra_environ['HTTP_HOST'] = str(
urlparse.urlparse(config['ckan.site_url']).netloc)

response = webtest_submit(form, name, value=value, status=302,
extra_environ=extra_environ, **args)
return app.get(url=response.headers['Location'],
Expand Down
2 changes: 1 addition & 1 deletion ckan/tests/legacy/functional/test_user.py
@@ -1,6 +1,6 @@
# encoding: utf-8

from routes import url_for
from ckan.lib.helpers import url_for
from nose.tools import assert_equal
from ckan.common import config
import hashlib
Expand Down
4 changes: 2 additions & 2 deletions ckanext/datapusher/plugin.py
Expand Up @@ -41,11 +41,11 @@ def resource_data(self, id, resource_id):
except logic.ValidationError:
pass

base.redirect(core_helpers.url_for(
core_helpers.redirect_to(
controller='ckanext.datapusher.plugin:ResourceDataController',
action='resource_data',
id=id,
resource_id=resource_id)
resource_id=resource_id
)

try:
Expand Down
4 changes: 2 additions & 2 deletions ckanext/example_igroupform/tests/test_controllers.py
Expand Up @@ -136,7 +136,7 @@ def test_save(self):
response = submit_and_follow(app, form, env, 'save')
# check correct redirect
assert_equal(response.req.url,
'http://localhost/%s/saved' % custom_group_type)
'http://test.ckan.net/%s/saved' % custom_group_type)
# check saved ok
group = model.Group.by_name(u'saved')
assert_equal(group.title, u'')
Expand Down Expand Up @@ -172,7 +172,7 @@ def test_save(self):
response = submit_and_follow(app, form, env, 'save')
# check correct redirect
assert_equal(response.req.url,
'http://localhost/%s/saved' % group_type)
'http://test.ckan.net/%s/saved' % group_type)
# check saved ok
group = model.Group.by_name(u'saved')
assert_equal(group.title, u'')
Expand Down

0 comments on commit 9b0be76

Please sign in to comment.