Mercurial > kallithea
view .travis.yml @ 5511:b537babcf966 stable
login: include query parameters in came_from
The login controller uses the came_from query argument to determine
the page to continue to after login.
Previously, came_from specified only the URL path (obtained using
h.url.current), and any URL query parameters were passed along as
separate (additional) URL query parameters; to obtain the final redirect
target, h.url was used to combine came_from with the request.GET.
As of this changeset, came_from specifies both the URL path and query
string (obtained using request.path_qs), which means that came_from can
be used directly as the redirect target (as always, WebOb handles the
task of expanding the server relative path to a fully qualified URL).
The mangling of request.GET can also be removed.
The login code appended arbitrary, user-supplied query parameters to
URLs by calling the Routes URLGenerator (h.url) with user-supplied
keyword arguments. This construct is unfortunate, since url only
appends _unknown_ keyword arguments as query parameters, and the
parameter names could overlap with known keyword arguments, possibly
affecting the generated URL in various ways. This changeset removes
this usage from the login code, but other instances remain.
(In practice, the damage is apparently limited to causing an Internal
Server Error when going to e.g. "/_admin/login?host=foo", since WebOb
returns Unicode strings and URLGenerator only allows byte strings for
these keyword arguments.)
author | Søren Løvborg <sorenl@unity3d.com> |
---|---|
date | Fri, 18 Sep 2015 13:57:49 +0200 |
parents | a9a1560dad79 |
children | e285bb7abb28 |
line wrap: on
line source
language: python python: - "2.6" - "2.7" env: - TEST_DB=sqlite:////tmp/kallithea_test.sqlite - TEST_DB=mysql://root@127.0.0.1/kallithea_test - TEST_DB=postgresql://postgres@127.0.0.1/kallithea_test services: - mysql - postgresql # command to install dependencies before_script: - mysql -e 'create database kallithea_test;' - psql -c 'create database kallithea_test;' -U postgres - git --version before_install: - sudo apt-get remove git - sudo add-apt-repository ppa:pdoes/ppa -y - sudo apt-get update -y - sudo apt-get install git -y install: - pip install mysql-python psycopg2 mock unittest2 - pip install . --use-mirrors # command to run tests script: nosetests notifications: email: - ci@kallithea-scm.org irc: "irc.freenode.org#kallithea" branches: only: - master