Commit Graph

23643 Commits

Author SHA1 Message Date
Steve Boyd
067a3e25b8 Merge branch '5.0' into 5 2023-07-31 11:56:45 +12:00
Steve Boyd
d9f40a2e3c Merge branch '4' into 5.0 2023-07-31 11:56:28 +12:00
Steve Boyd
f3061fe28e Merge branch '4.13' into 4 2023-07-31 11:56:04 +12:00
Steve Boyd
ae1c3bf0a0 Merge branch '4.13' into 5 2023-07-31 11:44:21 +12:00
Guy Sartorelli
0a1c46e69f
Merge pull request #10895 from creative-commoners/pulls/4.13/cve-2023-32302
[CVE-2023-32302] Require password field to be non-empty
2023-07-31 11:24:46 +12:00
Steve Boyd
7b21b38ac4 [CVE-2023-32302] Require password field to be non-empty 2023-07-31 11:14:22 +12:00
Guy Sartorelli
158d51a0a5
Merge pull request #10861 from creative-commoners/pulls/5/no-placeholders
ENH Do not use placeholders for int ID filters
2023-07-25 14:54:07 +12:00
Steve Boyd
672396880d ENH Do not use placeholders for int ID filters 2023-07-25 14:31:39 +12:00
Steve Boyd
2930308d4c Merge branch '5.0' into 5 2023-07-21 13:01:08 +12:00
Steve Boyd
27ccbf77e3 Merge branch '4' into 5.0 2023-07-21 13:00:47 +12:00
github-actions
561b6be1fb Merge branch '4.13' into 4 2023-07-21 00:27:04 +00:00
Guy Sartorelli
cb7be276e7
Merge pull request #10882 from creative-commoners/pulls/4.13/tx-1689897618
ENH Update translations
2023-07-21 12:23:39 +12:00
Steve Boyd
93acba0535 ENH Update translations 2023-07-21 12:00:18 +12:00
github-actions
4d8d5c04a5 Merge branch '5.0' into 5 2023-07-20 21:38:32 +00:00
github-actions
d8b69c36d9 Merge branch '4' into 5.0 2023-07-20 21:38:31 +00:00
github-actions
fc969b61cb Merge branch '4.13' into 4 2023-07-20 21:38:30 +00:00
Guy Sartorelli
c2a30d9b3b
Merge pull request #10881 from creative-commoners/pulls/4.13/double-assignement
MNT Tidy up double assignment
2023-07-21 09:36:04 +12:00
Sabina Talipova
54c0230b9a
Merge pull request #10879 from creative-commoners/pulls/5/dispatch
MNT Allow workflow_dispatch on merge-up workflow
2023-07-21 08:44:50 +12:00
Steve Boyd
2a213707d9 MNT Allow workflow_dispatch on merge-up workflow 2023-07-20 18:23:58 +12:00
Steve Boyd
a16b268ff7 MNT Tidy up double assignment 2023-07-20 18:19:14 +12:00
Guy Sartorelli
ec99be0fd5
Merge pull request #10877 from creative-commoners/pulls/4.13/short-array-enum
FIX Short-array syntax for Enum
2023-07-20 16:41:29 +12:00
Guy Sartorelli
642321db61
FIX Trigger eagerloading for first() and last() (#10875) 2023-07-20 16:37:03 +12:00
Steve Boyd
7daa3fdb08 FIX Short-array syntax for Enum 2023-07-20 16:06:01 +12:00
Guy Sartorelli
60d65dd369
Merge pull request #10871 from creative-commoners/pulls/5/merge-up
MNT Add merge-up action
2023-07-19 17:39:22 +12:00
Steve Boyd
10fba6e787
Merge pull request #10862 from creative-commoners/pulls/5/eagerloading-new-tests
Fix various eagerloading bugs
2023-07-17 13:15:42 +12:00
Guy Sartorelli
ed4c34b9d9
MNT Re-implement static test data for main eagerloading test 2023-07-17 12:03:11 +12:00
Guy Sartorelli
3bf845a9e6
FIX Protect against loading incorrect eager-loaded relations.
Don't fetch eager-loaded has_many or many_many unless we've validated
that the relation IS actually a has_many or many_many relation.
Also clear eager-loaded relations when flushing the record.
2023-07-17 12:03:11 +12:00
Guy Sartorelli
acad946b74
MNT Add missing tests for eagerloaded DataList interactions
Add tests for:
- filtered, limited, and sorted DataLists with eagerloaded relations
- iterating through the list multiple times
- eagerLoad method can be called anywhere in a query chain
- eager loaded relation lists can be correctly empty without throwing
  exceptions
- repeating relations to be eagerloaded in various permutations doesn't
  cause issues
- eagerloading doesn't negatively impact chunkedFetch functionality

squash
2023-07-17 12:03:11 +12:00
Guy Sartorelli
95d1c674a2
FIX Allow multiple iterations of eager-loaded DataLists
Includes making sure toArray() uses the correct iteration logic,
and cloning resets the eagerloaded data for the new clone.

Previously, a second iteration would add every relation item to the
relation list a second time - so with each iteration your relation list
count doubled (though it was the same records time and again).
2023-07-17 12:03:11 +12:00
Guy Sartorelli
d0ca9cfdde
FIX many_many extraFields and join records weren't in eagerloading 2023-07-17 12:03:11 +12:00
Guy Sartorelli
9bed2a3d98
MNT Refactor eagerloading tests into their own class 2023-07-17 12:03:09 +12:00
Steve Boyd
771844335b Merge branch '5.0' into 5 2023-07-17 11:52:07 +12:00
Steve Boyd
3f1b19f688 MNT Add merge-up action 2023-07-12 16:06:20 +12:00
Guy Sartorelli
9b2aee10dc
Merge pull request #10868 from creative-commoners/pulls/5.0/unit-test
MNT Fix unit test
2023-07-12 11:56:09 +12:00
Steve Boyd
3aa6d590a1 MNT Fix unit test 2023-07-11 10:25:16 +12:00
Steve Boyd
ba1082c3bd Merge branch '5.0' into 5 2023-07-10 17:14:15 +12:00
Steve Boyd
b88e7feeeb Merge branch '4' into 5.0 2023-07-10 17:13:59 +12:00
Steve Boyd
193a12ac01 Merge branch '4.13' into 4 2023-07-10 17:13:19 +12:00
Guy Sartorelli
82e96068d2
Merge branch '5.0' into 5 2023-07-10 14:30:07 +12:00
Guy Sartorelli
5854ce6190
Merge branch '4.13' into 5.0 2023-07-10 14:29:03 +12:00
Dylan Wagstaff
8c3ba81052
FIX PHP 8.1 support in MySQLiConnector::query errors (#10570)
* FIX PHP 8.1 support in MySQLiConnector::query errors

The default error reporting mode in PHP 8.1 has changed from using
errors reported on the connection handle to throwing
mysqli_sql_exception. query() makes no allowance for this, and
functions up the call stack expect to catch
Silverstripe\ORM\Connect\DatabaseException instead - resulting in the
MySQLi exception going all the way up to halt the system.

We can use a try, catch, and finally to retain backwards compatibility,
no matter which setting (e.g. PHP version default) someone has enabled.

* Move MySQLConnector test skip call into setUp()

As review feedback; marking the test as skipped in a private function
obfuscated where the call was happening and made it harder to skimread
the tests. Moving this into a setUp function makes it obvious the check
is run before each test case, and skipped if necessary.
2023-07-07 15:56:31 +12:00
Guy Sartorelli
62bd560d0e
Merge pull request #10819 from andrewandante/FEAT_add_only_individual_users_inherited_permission
NEW add OnlyTheseMembers Inherited Permission type
2023-07-07 09:37:59 +12:00
Andrew Paxley
a03d0fdf68 FIX ListboxField entwine submissions 2023-07-06 17:51:16 +12:00
Steve Boyd
730a03d3f6
Merge pull request #10855 from creative-commoners/pulls/5/fix-eagerloading-performance
FIX Resolve problems with eagerloading performance
2023-07-06 17:04:02 +12:00
Guy Sartorelli
7af0fe245c
FIX Resolve problems with eagerloading performance 2023-07-06 14:33:01 +12:00
Sabina Talipova
a57adfc778
MNT Deprecation notice if param has wrong type (#10853) 2023-07-05 17:21:30 +12:00
Guy Sartorelli
612f7e734f
FIX Allow repeated iterations of predicated query result (#10857) 2023-07-05 16:25:58 +12:00
Andrew Paxley
4b22ab4dfe API deprecate InheritedPermissions::getJoinTable 2023-07-05 16:22:17 +12:00
Andrew Paxley
34019426dd NEW add OnlyTheseMembers Inherited Permission type 2023-07-05 16:22:17 +12:00
Guy Sartorelli
85e503d012
ENH Refactor eagerloading fetch into separate methods
It is hard to work with the current structure - having each relation
type in its own method makes it way easier to see where my concerns
start and end with a given relation.

This also reduces the chance of variable bleed-over, where the value in
a variable in the first loop (in the same or other relation type) could
bleed into the next iteration of the loop.
2023-07-05 12:48:58 +12:00