* Adding a check to see if the posted value's source path isn't null or empty.
* Moving validation logic to proper files
* Moved logic to a required validator
* Adding tests to ensure validation works
* Minor tidy up: XML header comments, re-use in tests, clarified test names.
* Adding unit tests for file upload validation
---------
Co-authored-by: Andy Butland <abutland73@gmail.com>
* Fixes issue where content created from blueprint would not persist file upload property values.
* Ensure a copy of a file upload is created when scaffolding content from a blueprint, like we do when copying content.
* Clarified comment.
* Removed unneeded usings.
* Fixed spelling.
* Handle create of blueprint from content to create a new uploaded file.
Handle delete of blueprint to delete uploaded files.
* Fix for https://github.com/umbraco/Umbraco-CMS/issues/18872
* Parsing added for current value
* Build fix.
* Cyclomatic complexity fix
* Resolved breaking change.
* Pass content key.
* Simplified collections.
* Added unit tests to verify behaviour.
* Allow file upload on block list.
* Added unit test verifying added property.
* Added unit test verifying removed property.
* Restored null return for null value fixing failing integration tests.
* Logic has been updated according edge cases
* Logic to copy files from block list items has been added.
* Logic to delete files from block list items on content deletion has been added
* Test fix.
* Refactoring.
* WIP: Resolved breaking changes, minor refactoring.
* Consistently return null over empty, resolving failure in integration test.
* Removed unnecessary code nesting.
* Handle distinct paths.
* Handles clean up of files added via file upload in rich text blocks on delete of the content.
* Update src/Umbraco.Infrastructure/PropertyEditors/FileUploadPropertyEditor.cs
Co-authored-by: Sven Geusens <geusens@gmail.com>
* Fixed build of integration tests project.
* Handled delete of file uploads when deleting a block from an RTE using a file upload property.
* Refactored ensure of property type property populated on rich text values to a common helper extension method.
* Fixed integration tests build.
* Handle create of new file from file upload block in an RTE when the document is copied.
* Fixed failing integration tests.
* Refactored notification handlers relating to file uploads into separate classes.
* Handle nested rich text editor block with file upload when copying content.
* Handle nested rich text editor block with file upload when deleting content.
* Minor refactor.
* Integration test compatibility supressions.
---------
Co-authored-by: Andy Butland <abutland73@gmail.com>
Co-authored-by: Sven Geusens <geusens@gmail.com>
* Allow FileUpload and Imagecropper to upload files in the same way
* Fixed issue with backward compatibility
* Exclude from converter
* Bugfix if editorvalue is not a string
* Fix file upload value editor + clean up + throw explicitly if editor value is invalid
* Revert changes to FileUploadPropertyEditor - the stored property data format remains the file path
* Actually revert all changes to FileUploadPropertyEditor
* Also revert JsonValueConverter
* Cleanup remove unused equality methods
---------
Co-authored-by: kjac <kja@umbraco.dk>
* Implemented modular architecture for filestream security sanitization with an svg-html example
* 31440: Refactoring, applied to more entry points and removed test analyzer
* 31440 Added Unittests for FileStreamSecurityValidator
* PR fixes and better unittest mock names
---------
Co-authored-by: Sven Geusens <sge@umbraco.dk>
* https://github.com/umbraco/Umbraco-CMS/issues/10265
Resolve virtual view paths from DataEditorAttribute in DataValueEditor + Introduced an IDataValueEditorFactory, so we don't need to inject nested dependencies every time we introduce a new dependency in DataValueEditor..
* Cleanup + xml doc
* Allow IMediaFileSystem to be replace in the DI, or registered with inner filesystem
* Remove GetFileSystem from Filesystems
It was only used by tests.
* Make MediaFileSystem inherit from PhysicalFileSystem directly
* Remove FileSystemWrapper
* Remove inner filesystem from MediaFileSystem
* Add MediaFileManager and bare minimum to make it testable
* Remove MediaFileSystem
* Fix unit tests using MediaFileManager
* Remove IFileSystem and rely only on FileSystem
* Hide dangerous methods in FileSystems and do some cleaning
* Apply stylecop warnings to MediaFileManager
* Add FilesystemsCreator to Tests.Common
This allows you to create an instance if FileSystems with your own specified IFileSystem for testing purposes outside our own test suite.
* Allow the stylesheet filesystem to be replaced.
* Fix tests
* Don't save stylesheetWrapper in a temporary var
* refactor(FileSystems): change how stylesheet filesystem is registered
* fix(FileSystems): unable to overwrite media filesystem
SetMediaFileSystem added the MediaManager as a Singleton instead of
replacing the existing instance.
* fix(FileSystems): calling AddFileSystems replaces MediaManager
When calling AddFileSystems after SetMediaFileSystem the MediaManager
gets replaced by the default PhysicalFileSystem, so instead of calling
SetMediaFileSystem in AddFileSystems we now call TrySetMediaFileSystem
instead. This method will not replace any existing instance of the
MediaManager if there's already a MediaManager registered.
* Use SetMediaFileSystem instead of TrySet, and rename AddFilesystems to ConfigureFileSystems
Also don't call AddFileSystems again in ConfigureFilesystems
* Don't wrap CSS filesystem twice
* Add CreateShadowWrapperInternal to avoid casting
* Throw UnauthorizedAccessException isntead of InvalidOperationException
* Remove ResetShadowId
Co-authored-by: Rasmus John Pedersen <mail@rjp.dk>