* Fix clobbering of the upload size validation
When the validation is set here like this, it overrides validation which has already been setup with a simple '*' rule for the size based on PHP.
If you've defined in the sites yml config something like
SilverStripe\Assets\Upload_Validator:
default_max_file_size:
'[image]': '2m'
'*' : '1m'
then it will not be respected.
If you review SilverStripe\Assets\Upload_Validator and check the getAllowedMaxFileSize method, you'll see the sizing will be populated (if it hasn't been done before).
You can see it fail by;
- Setup a new SilverStripe site.
- Set your PHP to allow max post / max upload size of 10mb.
- Add the above config to your sites yml file and flush.
- In the CMS you'll be able to upload a 5MB file, when you shouldn't.
* Test that FileField will use size validation if defined
Couple of tests which prove a fix so the FileField and others will use the default_max_file_size setting
* Fix variable name in last commit
This is what happens when you refactor in the github window.
Fix the variable names. This will get squashed once merged.
* Updates the pr - white space and non deprecated method for byte conversion
Remove extra white space to appease the CS. Use the non deprecated method for memstring2bytes
* White space fixes for the phpcs
White space fixes for the phpcs
* Ensure that "memstring2bytes" can handle if an empty or value with no number is passed in
* DEP Bump assets constraint to ensure that change is also pulled in
---------
Co-authored-by: Guy Sartorelli <guy.sartorelli@silverstripe.com>
* ENH Create Requirements::customScriptWithAttributes
* MNT PHP Lint failures corrected
* ENH Refactored attribute handling to avoid API changes, auto lowercase, strong typing
* FIX Updated default value handling for type in customScriptWithAttributes
* DOC Removed white space
* MNT PHP Lint Failures Corrected
* Update src/View/Requirements_Backend.php
Co-authored-by: Steve Boyd <emteknetnz@gmail.com>
* Update src/View/Requirements_Backend.php
Co-authored-by: Steve Boyd <emteknetnz@gmail.com>
* Update tests/php/View/RequirementsTest.php
Co-authored-by: Steve Boyd <emteknetnz@gmail.com>
* FIX Removed extra closing brace in customScriptWithAttributes
* Update src/View/Requirements_Backend.php
Co-authored-by: Steve Boyd <emteknetnz@gmail.com>
* Update src/View/Requirements.php
Co-authored-by: Guy Sartorelli <36352093+GuySartorelli@users.noreply.github.com>
* MNT Fixed left over content definition and created tests for uniquenessIDs
* MNT Fixed PHP Lint Error
* MNT Fix PHP Lint Error
* FIX Remove attribute when calling customScript with the same uniquenessID
---------
Co-authored-by: Steve Boyd <emteknetnz@gmail.com>
Co-authored-by: Guy Sartorelli <36352093+GuySartorelli@users.noreply.github.com>
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
* 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.