1
0
mirror of https://github.com/django/django.git synced 2025-07-04 09:49:12 +00:00

[soc2010/query-refactor] Merged up to trunk r13405.

git-svn-id: http://code.djangoproject.com/svn/django/branches/soc2010/query-refactor@13407 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Alex Gaynor 2010-07-01 01:45:44 +00:00
parent 0ba2e50d9c
commit 183c290b83
8 changed files with 47 additions and 26 deletions

View File

@ -445,6 +445,14 @@ ul.messagelist li {
background: #ffc url(../img/admin/icon_success.gif) 5px .3em no-repeat; background: #ffc url(../img/admin/icon_success.gif) 5px .3em no-repeat;
} }
ul.messagelist li.warning{
background-image: url(../img/admin/icon_alert.gif);
}
ul.messagelist li.error{
background-image: url(../img/admin/icon_error.gif);
}
.errornote { .errornote {
font-size: 12px !important; font-size: 12px !important;
display: block; display: block;

View File

@ -56,7 +56,9 @@
{% endif %} {% endif %}
{% if messages %} {% if messages %}
<ul class="messagelist">{% for message in messages %}<li>{{ message }}</li>{% endfor %}</ul> <ul class="messagelist">{% for message in messages %}
<li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li>
{% endfor %}</ul>
{% endif %} {% endif %}
<!-- Content --> <!-- Content -->

View File

@ -14,10 +14,10 @@ if lib_path:
lib_names = None lib_names = None
elif os.name == 'nt': elif os.name == 'nt':
# Windows NT shared library # Windows NT shared library
lib_names = ['gdal16', 'gdal15'] lib_names = ['gdal17', 'gdal16', 'gdal15']
elif os.name == 'posix': elif os.name == 'posix':
# *NIX library names. # *NIX library names.
lib_names = ['gdal', 'GDAL', 'gdal1.6.0', 'gdal1.5.0', 'gdal1.4.0'] lib_names = ['gdal', 'GDAL', 'gdal1.7.0', 'gdal1.6.0', 'gdal1.5.0', 'gdal1.4.0']
else: else:
raise OGRException('Unsupported OS "%s"' % os.name) raise OGRException('Unsupported OS "%s"' % os.name)

View File

@ -126,13 +126,27 @@ class CsrfViewMiddleware(object):
return accept() return accept()
if request.is_secure(): if request.is_secure():
# Strict referer checking for HTTPS # Suppose user visits http://example.com/
# An active network attacker,(man-in-the-middle, MITM) sends a
# POST form which targets https://example.com/detonate-bomb/ and
# submits it via javascript.
#
# The attacker will need to provide a CSRF cookie and token, but
# that is no problem for a MITM and the session independent
# nonce we are using. So the MITM can circumvent the CSRF
# protection. This is true for any HTTP connection, but anyone
# using HTTPS expects better! For this reason, for
# https://example.com/ we need additional protection that treats
# http://example.com/ as completely untrusted. Under HTTPS,
# Barth et al. found that the Referer header is missing for
# same-domain requests in only about 0.2% of cases or less, so
# we can use strict Referer checking.
referer = request.META.get('HTTP_REFERER') referer = request.META.get('HTTP_REFERER')
if referer is None: if referer is None:
return reject("Referer checking failed - no Referer.") return reject("Referer checking failed - no Referer.")
# The following check ensures that the referer is HTTPS, # The following check ensures that the referer is HTTPS,
# the domains match and the ports match. This might be too strict. # the domains match and the ports match - the same origin policy.
good_referer = 'https://%s/' % request.get_host() good_referer = 'https://%s/' % request.get_host()
if not referer.startswith(good_referer): if not referer.startswith(good_referer):
return reject("Referer checking failed - %s does not match %s." % return reject("Referer checking failed - %s does not match %s." %

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash #!/usr/bin/env bash
POSTGIS_SQL_PATH=`pg_config --sharedir`/contrib/postgis-1.4 POSTGIS_SQL_PATH=`pg_config --sharedir`/contrib
createdb -E UTF8 template_postgis # Create the template spatial database. createdb -E UTF8 template_postgis # Create the template spatial database.
createlang -d template_postgis plpgsql # Adding PLPGSQL language support. createlang -d template_postgis plpgsql # Adding PLPGSQL language support.
psql -d postgres -c "UPDATE pg_database SET datistemplate='true' WHERE datname='template_postgis';" psql -d postgres -c "UPDATE pg_database SET datistemplate='true' WHERE datname='template_postgis';"

View File

@ -383,9 +383,9 @@ Typically, SQLite packages are not compiled to include the `R*Tree module`__ --
thus it must be compiled from source. First download the latest amalgamation thus it must be compiled from source. First download the latest amalgamation
source archive from the `SQLite download page`__, and extract:: source archive from the `SQLite download page`__, and extract::
$ wget http://www.sqlite.org/sqlite-amalgamation-3.6.22.tar.gz $ wget http://sqlite.org/sqlite-amalgamation-3.6.23.1.tar.gz
$ tar xzf sqlite-amalgamation-3.6.22.tar.gz $ tar xzf sqlite-amalgamation-3.6.23.1.tar.gz
$ cd sqlite-3.6.22 $ cd sqlite-3.6.23.1
Next, run the ``configure`` script -- however the ``CFLAGS`` environment variable Next, run the ``configure`` script -- however the ``CFLAGS`` environment variable
needs to be customized so that SQLite knows to build the R*Tree module:: needs to be customized so that SQLite knows to build the R*Tree module::
@ -449,12 +449,9 @@ Finally, do the same for the SpatiaLite tools::
.. note:: .. note::
For Mac OS X users building from source, the SpatiaLite library *and* tools For Mac OS X users building from source, the SpatiaLite library *and* tools
need to be linked into the existing ``iconv`` library. While this happens need to have their ``target`` configured::
automatically on Linux, the ``configure`` scripts need to know about the
specific location on Mac OS X (via modification of the ``CFLAGS`` and
``LDFLAGS`` environment variables prior to configuration)::
$ CFLAGS=-I/usr/include LDFLAGS="-L/usr/lib -liconv" ./configure $ ./configure --target=macosx
__ http://www.gaia-gis.it/spatialite/sources.html __ http://www.gaia-gis.it/spatialite/sources.html
@ -804,8 +801,8 @@ your ``.profile`` to be able to run the package programs from the command-line::
export PATH=/Library/Frameworks/GDAL.framework/Programs:$PATH export PATH=/Library/Frameworks/GDAL.framework/Programs:$PATH
export PATH=/usr/local/pgsql/bin:$PATH export PATH=/usr/local/pgsql/bin:$PATH
__ http://www.kyngchaos.com/wiki/software:frameworks __ http://www.kyngchaos.com/software/frameworks
__ http://www.kyngchaos.com/wiki/software:postgres __ http://www.kyngchaos.com/software/postgres
.. note:: .. note::

View File

@ -435,8 +435,6 @@ Anonymous users
instead of ``False``. instead of ``False``.
* :meth:`~django.contrib.auth.models.User.is_authenticated()` returns * :meth:`~django.contrib.auth.models.User.is_authenticated()` returns
``False`` instead of ``True``. ``False`` instead of ``True``.
* :meth:`~django.contrib.auth.models.User.has_perm()` always returns
``False``.
* :meth:`~django.contrib.auth.models.User.set_password()`, * :meth:`~django.contrib.auth.models.User.set_password()`,
:meth:`~django.contrib.auth.models.User.check_password()`, :meth:`~django.contrib.auth.models.User.check_password()`,
:meth:`~django.contrib.auth.models.User.save()`, :meth:`~django.contrib.auth.models.User.save()`,

View File

@ -66,11 +66,13 @@ class M2MThroughTestCase(TestCase):
p = Person.objects.create(name="Bob") p = Person.objects.create(name="Bob")
g = Group.objects.create(name="Roll") g = Group.objects.create(name="Roll")
Membership.objects.create(person=p, group=g) m =Membership.objects.create(person=p, group=g)
pks = {"p_pk": p.pk, "g_pk": g.pk, "m_pk": m.pk}
out = StringIO() out = StringIO()
management.call_command("dumpdata", "m2m_through_regress", format="json", stdout=out) management.call_command("dumpdata", "m2m_through_regress", format="json", stdout=out)
self.assertEqual(out.getvalue().strip(), """[{"pk": 1, "model": "m2m_through_regress.membership", "fields": {"person": 1, "price": 100, "group": 1}}, {"pk": 1, "model": "m2m_through_regress.person", "fields": {"name": "Bob"}}, {"pk": 1, "model": "m2m_through_regress.group", "fields": {"name": "Roll"}}]""") self.assertEqual(out.getvalue().strip(), """[{"pk": %(m_pk)s, "model": "m2m_through_regress.membership", "fields": {"person": %(p_pk)s, "price": 100, "group": %(g_pk)s}}, {"pk": %(p_pk)s, "model": "m2m_through_regress.person", "fields": {"name": "Bob"}}, {"pk": %(g_pk)s, "model": "m2m_through_regress.group", "fields": {"name": "Roll"}}]""" % pks)
out = StringIO() out = StringIO()
management.call_command("dumpdata", "m2m_through_regress", format="xml", management.call_command("dumpdata", "m2m_through_regress", format="xml",
@ -78,19 +80,19 @@ class M2MThroughTestCase(TestCase):
self.assertEqual(out.getvalue().strip(), """ self.assertEqual(out.getvalue().strip(), """
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<django-objects version="1.0"> <django-objects version="1.0">
<object pk="1" model="m2m_through_regress.membership"> <object pk="%(m_pk)s" model="m2m_through_regress.membership">
<field to="m2m_through_regress.person" name="person" rel="ManyToOneRel">1</field> <field to="m2m_through_regress.person" name="person" rel="ManyToOneRel">%(p_pk)s</field>
<field to="m2m_through_regress.group" name="group" rel="ManyToOneRel">1</field> <field to="m2m_through_regress.group" name="group" rel="ManyToOneRel">%(g_pk)s</field>
<field type="IntegerField" name="price">100</field> <field type="IntegerField" name="price">100</field>
</object> </object>
<object pk="1" model="m2m_through_regress.person"> <object pk="%(p_pk)s" model="m2m_through_regress.person">
<field type="CharField" name="name">Bob</field> <field type="CharField" name="name">Bob</field>
</object> </object>
<object pk="1" model="m2m_through_regress.group"> <object pk="%(g_pk)s" model="m2m_through_regress.group">
<field type="CharField" name="name">Roll</field> <field type="CharField" name="name">Roll</field>
</object> </object>
</django-objects> </django-objects>
""".strip()) """.strip() % pks)
def test_join_trimming(self): def test_join_trimming(self):
"Check that we don't involve too many copies of the intermediate table when doing a join. Refs #8046, #8254" "Check that we don't involve too many copies of the intermediate table when doing a join. Refs #8046, #8254"