Commit graph

13146 commits

Author SHA1 Message Date
Adam Johnson
16a8fe18a3 [5.0.x] Fixed CVE-2024-24680 -- Mitigated potential DoS in intcomma template filter.
Thanks Seokchan Yoon for the report.

Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com>
Co-authored-by: Natalia <124304+nessita@users.noreply.github.com>
Co-authored-by: Shai Berger <shai@platonix.com>
2024-02-06 09:13:21 -03:00
Simon Charette
761946f8e1 [5.0.x] Fixed #35149 -- Fixed crashes of db_default with unresolvable output field.
Field.db_default accepts either literal Python values or compilables
(as_sql) and wrap the former ones in Value internally.

While 1e38f11 added support for automatic resolving of output fields for
types such as str, int, float, and other unambigous ones it's cannot do
so for all types such as dict or even contrib.postgres and contrib.gis
primitives.

When a literal, non-compilable, value is provided it likely make the
most sense to bind its output field to the field its attached to avoid
forcing the user to provide an explicit `Value(output_field)`.

Thanks David Sanders for the report.

Backport of e67d7d70fa from main
2024-02-04 14:48:44 +01:00
Simon Charette
914eee1a9b [5.0.x] Refs #35149 -- Made equivalent db_default alterations noops.
This allows for an easier transition of preserving the literal nature of
non-compilable db_default.

Backport of fe1cb62f5c from main
2024-02-04 14:48:32 +01:00
Simon Charette
3e7a30fb3a [5.0.x] Fixed #35162 -- Fixed crash when adding fields with db_default on MySQL.
MySQL doesn't allow literal DEFAULT values to be used for BLOB, TEXT,
GEOMETRY or JSON columns and requires expression to be used instead.

Regression in 7414704e88.

Backport of dfc77637ea from main
2024-02-04 09:24:38 +01:00
David Sanders
06b05c748f [5.0.x] Refs #34936 -- Added test for altering DecimalField with db_default to non-nullable.
Backport of 1944f490f9 from main
2024-02-01 08:13:26 +01:00
James Thorniley
f1fbd061ac [5.0.x] Fixed #35059 -- Ensured that ASGIHandler always sends the request_finished signal.
Prior to this work, when async tasks that process the request are cancelled due
to receiving an early "http.disconnect" ASGI message, the request_finished
signal was not being sent, potentially leading to resource leaks (such as
database connections).

This branch ensures that the request_finished signal is sent even in the case
of early termination of the response.

Regression in 64cea1e48f.

Co-authored-by: Natalia <124304+nessita@users.noreply.github.com>
Co-authored-by: Carlton Gibson <carlton.gibson@noumenal.es>

Backport of 11393ab131 from main
2024-01-31 14:45:44 -03:00
Natalia
bbb9ef3c62 [5.0.x] Refs #35059 -- Made asgi tests' SignalHandler helper class re-usable by other tests.
Backport of a43d75e81d from main
2024-01-31 14:45:13 -03:00
Mariusz Felisiak
7453d6a807 [5.0.x] Fixed #35159 -- Fixed dumpdata crash when base querysets use prefetch_related().
Regression in 1391356276
following deprecation in edbf930287.

Thanks Andrea F for the report.
Backport of 38eaf2f21a from main
2024-01-31 16:10:50 +01:00
Nicolas Delaby
a5440054d2 [5.0.x] Fixed #35135 -- Made FilteredRelation raise ValueError on querysets as rhs.
Regression in 59f4754704.

Backport of 820c5f1bac from main
2024-01-30 05:54:39 +01:00
Mariusz Felisiak
0379e7532f [5.0.x] Applied Black's 2024 stable style.
https://github.com/psf/black/releases/tag/24.1.0

Backport of 305757aec1 from main
2024-01-26 12:55:56 +01:00
Mariusz Felisiak
ee78fe390d [5.0.x] Fixed #35127 -- Made Model.full_clean() ignore GeneratedFields.
Thanks Claude Paroz for the report.

Regression in f333e3513e.
Backport of 4879907223 from main
2024-01-19 08:56:14 +01:00
Sarah Boyce
4cba6748a6 [5.0.x] Fixed #35087 -- Reallowed filtering against foreign keys not listed in ModelAdmin.list_filters.
Regression in f80669d2f5.

Backport of a9094ec1f4 from main
2024-01-08 14:25:32 +01:00
Mariusz Felisiak
9a182f3d95 [5.0.x] Fixed #35056 -- Fixed system check crash on reverse m2m relations with related_name in ModelAdmin.filter_horizontal/vertical.
Thanks Thomas Feldmann for the report.

Regression in 107865780a.
Backport of 751d732a38 from main
2023-12-27 20:37:23 +01:00
David Wobrock
9aad44150f [5.0.x] Fixed #35050 -- Fixed prefixing field names in FilteredRelation().
Thanks Mark Zorn for the report.

Regression in 59f4754704.

Backport of 14917c9ae2 from main
2023-12-23 18:33:07 +01:00
Mariusz Felisiak
5f89da0837 [5.0.x] Fixed #35018 -- Fixed migrations crash on GeneratedField with BooleanField as output_field on Oracle < 23c.
Thanks Václav Řehák for the report.

Regression in f333e3513e.

Backport of fcf95e5927 from main.
2023-12-12 05:41:38 +01:00
Sarah Boyce
03af8fbd0f [5.0.x] Fixed #35019 -- Fixed save() on models with both GeneratedFields and ForeignKeys.
Thanks Deb Kumar Das for the report.

Regression in f333e3513e.

Backport of b287af5dc9 from main
2023-12-08 12:09:56 +01:00
Mariusz Felisiak
415a08a528 [5.0.x] Fixed #35024 -- Fixed model instance creation crash on GeneratedField.output_field with backend converters.
Regression in d9de74141e.

This is a long standing issue, however it caused a crash of
GeneratedFields for all output fields that have backend-specific
converters when the RETURNING clause is not supported
(MySQL and SQLite < 3.35).
That's why severity was exacerbated.
Backport of 5b3b791e90 from main
2023-12-07 20:50:48 +01:00
Sarah Boyce
454fd50efb [5.0.x] Fixed #35020 -- Fixed ModelAdmin.lookup_allowed() for non-autofield primary keys.
Thanks Joshua Goodwin for the report.

Regression in 45ecd9acca.

Backport of f80669d2f5 from main
2023-12-07 08:44:59 +01:00
Peter Thomassen
cb013fc7d9 [5.0.x] Fixed #35002 -- Made UniqueConstraints with fields respect nulls_distinct.
Regression in 595a2abb58.

Backport of 54cb1a7e16 from main
2023-12-03 14:12:39 +01:00
Sarah Boyce
9fe12b0f36 [5.0.x] Refs #34995 -- Made Selenium tests more robust for admin_views and admin_widgets suites.
Depending on screen sizes, the selenium tests that would "click" or interact
with an element outside the scope of the visible window would produce test
failures (raising ElementNotInteractableException in CI runs).

This branch switches those to using ActionChains, which ensures that the click
(or other interaction) is performed only after successfully completing the
move to the relevant element.

Co-authored-by: Tom Carrick <tom@carrick.eu>

Backport of af2fd36815 from main
2023-11-30 17:09:09 -03:00
Mariusz Felisiak
7f1dc67f53 [5.0.x] Fixed #35006 -- Fixed migrations crash when altering Meta.db_table_comment on SQLite.
Thanks Юрий for the report.

Regression in 78f163a4fb.
Backport of 37fc832a54 from main
2023-11-30 10:11:02 +01:00
Mariusz Felisiak
92af3d4d23 [5.0.x] Refs #34380 -- Added FORMS_URLFIELD_ASSUME_HTTPS transitional setting.
This allows early adoption of the new default "https".

Backport of a4931cd75a from main.
2023-11-28 20:08:10 +01:00
Tom Carrick
432bfa2615 [5.0.x] Fixed #34982 -- Fixed admin's read-only password widget and help texts alignment for tablet screen size.
Co-authored-by: Sarah Boyce <42296566+sarahboyce@users.noreply.github.com>

Backport of 729266c6f2 from main
2023-11-27 15:20:22 -03:00
Nathaniel Conroy
d9ba8fa397 [5.0.x] Fixed #34992 -- Fixed DatabaseFeatures.allows_group_by_selected_pks on MariaDB with ONLY_FULL_GROUP_BY sql mode.
Regression in 041551d716.

Backport of 0257426fe1 from main
2023-11-27 10:34:42 +01:00
Simon Charette
95dec210e8 [5.0.x] Fixed #34987 -- Fixed queryset crash when mixing aggregate and window annotations.
Regression in f387d024fc.

Just like `OrderByList` the `ExpressionList` expression used to wrap
`Window.partition_by` must implement `get_group_by_cols` to ensure the
necessary grouping when mixing window expressions with aggregate
annotations is performed against the partition members and not the
partition expression itself.

This is necessary because while `partition_by` is implemented as
a source expression of `Window` it's actually a fragment of the WINDOW
expression at the SQL level and thus it should result in a group by its
members and not the sum of them.

Thanks ElRoberto538 for the report.
Backport of e76cc93b01 from main
2023-11-23 06:09:58 +01:00
Mariusz Felisiak
48eebdc63c [5.0.x] Fixed #34985 -- Fixed GeneratedFields.contribute_to_class() crash when apps are not populated.
Thanks Paolo Melchiorre for the report.

Regression in f333e3513e.
Backport of 101a85a5a0 from main
2023-11-22 13:49:59 +01:00
Sarah Boyce
0c6ca52226 [5.0.x] Fixed #34984 -- Skipped GeneratedFields when remaking tables on SQLite.
Regression in f333e3513e8bdf5ffeb6eeb63021c230082e6f95.t

Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com>
Co-authored-by: David Sanders <shang.xiao.sanders@gmail.com>

Backport of 828082dad9 from main
2023-11-22 13:27:40 +01:00
Simon Charette
49f1ced863 [5.0.x] Fixed #34975 -- Fixed crash of conditional aggregate() over aggregations.
Adjustments made to solve_lookup_type to defer the resolving of
references for summarized aggregates failed to account for similar
requirements for lookup values which can also reference annotations
through Aggregate.filter.

Regression in b181cae2e3.

Refs #25307.

Thanks Sergey Nesterenko for the report.

Backport of 7530cf3900 from main
2023-11-18 16:52:54 +01:00
Mariusz Felisiak
fcc55f8c26 [5.0.x] Refs #34944 -- Propagated system checks for GeneratedField.output_field.
Backport of c705625ebf from main
2023-11-14 20:22:41 +01:00
Mariusz Felisiak
ddbe5c86e8 [5.0.x] Fixed #34944 -- Made GeneratedField.output_field required.
Regression in f333e3513e.

Backport of 5875f03ce6 from main
2023-11-14 20:22:33 +01:00
Mariusz Felisiak
5b1d0a6be0 [5.0.x] Reverted "Refs #30446, Refs #34944 -- Fixed crash when adding GeneratedField with string Value()."
This reverts commit 8b1acc0440.

Backport of de4884b114 from main
2023-11-14 15:46:23 +01:00
nessita
7a21ea5464 [5.0.x] Fixed #34958 -- Fixed isolation of messages_tests.tests.TestLevelTags.test_lazy.
Backport of 1b56b24f81 from main
2023-11-13 09:38:00 +01:00
Adam Johnson
8eba6efbf0 [5.0.x] Fixed #34457 -- Restored output for makemigrations --check.
Co-authored-by: David Sanders <shang.xiao.sanders@gmail.com>
Co-authored-by: Natalia <124304+nessita@users.noreply.github.com>

Backport of f7389c4b07 from main
2023-11-09 10:44:07 -03:00
Simon Charette
73869a5163 [5.0.x] Refs #30446, Refs #34944 -- Fixed crash when adding GeneratedField with string Value().
This should allow smarter output_field inferring in functions dealing
with text expressions.

Regression in f333e3513e.

Backport of 8b1acc0440 from main
2023-11-08 16:18:00 +03:00
Simon Charette
0265eaa500 [5.0.x] Fixed #34946 -- Preserved db_default on combined default field addition.
Regression in 7414704e88.
Backport of 8a28e983df from main
2023-11-07 13:33:24 +03:00
David Sanders
8dde0504f3 [5.0.x] Fixed #34936 -- Fixed migration crash for DecimalField with db_default on SQLite.
CAST() must be wrapped in parentheses to be recognized as an expression on SQLite.

Regression in 7414704e88.

Backport of 797957fb48 from main
2023-11-02 19:59:39 +01:00
Tim Graham
b735b90f43 [5.0.x] Refs #31300 -- Allowed testing GeneratedField without collation.
CockroachDB and Snowflake don't support it.

Backport of 208870b612 from main
2023-11-02 15:48:31 +01:00
Mariusz Felisiak
bb71d34551 [5.0.x] Fixed CVE-2023-46695 -- Fixed potential DoS in UsernameField on Windows.
Thanks MProgrammer (https://hackerone.com/mprogrammer) for the report.
2023-11-01 06:18:00 +01:00
Tom Carrick
602835202d [5.0.x] Fixed #34932 -- Restored varchar_pattern_ops/text_pattern_ops index creation when deterministic collaction is set.
Regression in f3f9d03edf (4.2) and
8ed25d65ea (5.0).

Backport of 34b411762b from main
2023-10-30 11:08:03 +01:00
Mariusz Felisiak
00805ff436 [5.0.x] Fixed #34923 -- Avoided initializing LEVEL_TAGS when importing django.contrib.messages.
Regression in b7fe36ad37.

Thanks James Gillard for the report.

Backport of 311718feb5 from main
2023-10-24 14:12:40 -03:00
Nick Pope
cc5901fa8e [5.0.x] Fixed #34899 -- Added blank choice to forms' callable choices lazily.
Backport of 171f91d9ef from main
2023-10-23 14:54:37 -03:00
Nick Pope
bbe90f3c00 [5.0.x] Refs #34899 -- Extracted Field.flatchoices to flatten_choices helper function.
Co-authored-by: Natalia Bidart <124304+nessita@users.noreply.github.com>

Backport of 74afcee234 from main
2023-10-23 14:53:13 -03:00
Nick Pope
711c054722 [5.0.x] Refs #31262 -- Added __eq__() and __getitem__() to BaseChoiceIterator.
This makes it easier to work with lazy iterators used for callables,
etc. when extracting items or comparing to lists, e.g. during testing.

Also added `BaseChoiceIterator.__iter__()` to make it clear that
subclasses must implement this and added `__all__` to the module.

Co-authored-by: Adam Johnson <me@adamj.eu>
Co-authored-by: Natalia Bidart <124304+nessita@users.noreply.github.com>

Backport of 07fa79ef2b from main
2023-10-23 14:51:27 -03:00
David Sanders
4dec7eded9 [5.0.x] Fixed #34921 -- Fixed crash of warning for unbound naive datetimes.
Backport of b5311ee232 from main
2023-10-22 19:34:13 +02:00
laserhyena
bba963df50 [5.0.x] Fixed #34911 -- Corrected HTML heading levels on admindocs' main page.
Backport of 21382e2743 from main
2023-10-20 06:20:32 +02:00
ontowhee
31bdf67a9c [5.0.x] Fixed #34905 -- Corrected admin's main content element rendered in <main> tag.
Regression in 91e617c743.

Thanks Tom Carrick for the report.
Backport of 89d2ae257b from main
2023-10-19 17:26:15 +02:00
Mariusz Felisiak
448510a94b [5.0.x] Refs #34900, Refs #34118 -- Updated assertion in test_skip_class_unless_db_feature() test on Python 3.12.1+.
Python 3.12.1+ no longer includes skipped tests in the number of
running tests. Check out:

https://github.com/python/cpython/issues/110890#issuecomment-1763458686
https://github.com/python/cpython/pull/106588
Backport of 20b7aac7ca from main
2023-10-16 06:28:13 +02:00
Simon Charette
4ccca9eedc [5.0.x] Fixed #34798 -- Fixed QuerySet.aggregate() crash when referencing expressions containing subqueries.
Regression in 59bea9efd2,
complements e5c844d6f2.

Refs #28477, #34551.

Thanks Haldun Komsuoglu for the report.

Backport of 3b4a571275 from main
2023-10-16 06:15:08 +02:00
Mariusz Felisiak
c3cf518a80 [5.0.x] Refs #34840 -- Fixed test_validate_nullable_textfield_with_isnull_true() on databases that don's support table check constraints.
Thanks Tim Graham for the report.
Backport of 9fd3a0ffc8 from main
2023-10-12 20:02:02 +02:00
Mariana
0bbe6ca2ac [5.0.x] Fixed #12241 -- Preserved query strings when using "Save and continue/add another" in admin.
Co-authored-by: Grady Yu <gradyy@users.noreply.github.com>
Co-authored-by: David Sanders <shang.xiao.sanders@gmail.com>
Co-authored-by: Matthew Newton <matthewn@berkeley.edu>

Backport of fc62e17778 from main
2023-10-11 12:46:10 +02:00