* Copy and Move API for Content and Media
* Update OpenAPI JSON schema
* Update OpenApi JSON file after merge
* Rename key to id
---------
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* New Backoffice: Refactor migrations to allow for unscoped migrations (#13654)
* Remove PostMigrations
These should be replaced with Notification usage
* Remove outer scope from Upgrader
* Remove unececary null check
* Add marker base class for migrations
* Enable scopeless migrations
* Remove unnecessary state check
The final state of the migration is no longer necessarily the final state of the plan.
* Extend ExecutedMigrationPlan
* Ensure that MigrationPlanExecutor.Execute always returns a result.
* Always save final state, regardless of errors
* Remove obsolete Execute
* Add Umbraco specific migration notification
* Publish notification after umbraco migration
* Throw the exception that failed a migration after publishing notification
* Handle notification publishing in DatabaseBuilder
* Fix tests
* Remember to complete scope
* Clean up MigrationPlanExecutor
* Run each package migration in a separate scope
* Add PartialMigrationsTests
* Add unhappy path test
* Fix bug shown by test
* Move PartialMigrationsTests into the correct folder
* Comment out refresh cache in data type migration
Need to add this back again as a notification handler or something.
* Start working on a notification test
* Allow migrations to request a cache rebuild
* Set RebuildCache from MigrateDataTypeConfigurations
* Clean MigrationPlanExecutor
* Add comment explaining the need to partial migration success
* Fix tests
* Allow overriding DefinePlan of UmbracoPlan
This is needed to test the DatabaseBuilder
* Fix notification test
* Don't throw exception to be immediately re-caught
* Assert that scopes notification are always published
* Ensure that scopes are created when requested
* Make test classes internal.
It doesn't really matter, but this way it doesn't show up in intellisense
* Add notification handler for clearing cookies
* Add CompatibilitySuppressions
* Rename Execute to ExecutePlan
We have to do this to be able to obsolete :(
* Update CompatibilitySuppressions
* Update src/Umbraco.Infrastructure/Migrations/MigrationPlanExecutor.cs
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* generate compatability suppresion file
---------
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
Co-authored-by: Zeegaan <nge@umbraco.dk>
* Add specific not found results
* Add tests for the enable/disable not found tweak
* Cache ids and key in UserIdKeyResolver
* Don't cache null keys
* BackOffice not Backoffice
* Move fetching the user out of the ChangePasswordUsersController
* Move resolving user out of SetAvatar
* Move resolving user out of Update
* Return more specific notfound in bykey
* Use ErrorResult for all endpoints with unknown errors
* Split integration tests
* Add mappers
* Use ?: consistently
* Add reuseable iso code validator
* Validate ISO code
* Update supressions
* Use method from base to get current user key
* Rename ISo to Iso
* Use keys in services instead of user groups + Added a couple of new validations
---------
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Fix CanForceCreateDatabase method and add some unit tests
* Fixed an old copy/paste error
* A little nitpicking over wording and formatting
---------
Co-authored-by: kjac <kja@umbraco.dk>
* Add UserResponseModel
* Add factory to created UserResponseModel
* Add GetByKey controller
* Add GetAllUsers endpoint
* User proper response model
* Make naming consistent
* Order by username in GetAll
* Add user filter endpoint
* Fix includer user states
* Remove gravatar from the backend
* Send user avatars in response
* Add create user model
* start working on create
* Validate the create model
* Add authorization to create
* Use UserRepository instead of UserService to ValidateSessíonId
* Create IBackofficeUserStore interface
This is essentially a core-friendly version of the BackOfficeUserStore, additionally it contains basic methods for managing users, I.E. Get users, save users, create users, etc.
* Remove more usages of user service
* Remove usages of IUserService in BackofficeUserStore
* Add documentation
* Fix tests and DI
* add IBackOfficeUserStoreAccessor to resolve it in singleton services
* Resolve circular dependency
* Remove obsolete constructor
* Add core friendly user manager
* Finish createasync in user service
* Add WIP create endpoint
* Save newly creates users user groups
* Use service scope for user service
* Remove now unnecessary accessors
* Add response types
* Add update user endpoint
* Add EmailUserInviteSender
* Add technology free way of creating confirmation token
* Add invite uri provider
* Add invite user to user service
* Add invite user controller
* Add delete endpoint
* Add operation status responses
* Add operation status responses
* Added temporary file uploads including a repository implementation using local temp folder.
* Add Disable users endpoint
* missing files
* Fixed copy paste error
* Fix create users return type
* Updated OpenApi.json
* Updated OpenApi.json
* Handle if created failed in identity
* Add enable user
* Make users plural in enable/disable
We're doing the operation on multiple entities
* Added file extension check
* Add unlock user endpoint
* Clean up. Removed old TemporaryFileService and UploadFileService and updated dictionary items to use this new items
* Clean up
* Add reset password
* Add UpdateUserGroupsOnUsers method
* Add UpdateUserGroups
* Get rid of stream directly on TemporaryFileModel, and use delegate to open stream instead.
* Fix post merge
* Use keys instead of IDs
* Add ClearAvatar endpoint
* Review changes
* Moved models to their own files
* Reverted launch settings
* Move enlist extension to its own namespace
* Create set avatar endpoint
* Add reponse types
* Remove infrastructure extension after merge
* Add Cmapatibility suppressions
* Add test suppression
* Add integration tests
* Fix issue found in tests
* Add invited user to UserInvitationResult
* Add more tests
* Add update tests
* Hide different tests under parent
* Return DuplicatUserName user operation status if username matches an email
* Add update tests
* Change sorted set to HashSet
It doesn't work if it's not IComparable
* Change ID to Key when checking super
* Add get tests
* Add more GetAllTests
* Move tests to the right namespace
* Add filter test
* Fix including disabled users bug found by test
* Add test to ensure invited user state
* Add test case for UserState.All
* Add more filter tests
* Add enable disable tests
* Add resolver for keys and ids
* Replace usages of IUserService with IUserIdKeyResolver
* Add CompatibilitySuppressions
* Add UserIdKeyResolverTests
* Fix UserIdKeyResolver
* Add missing user operation results
* Updates from review
* ID not key
* Post instead of patch
* Use set instead of params for enable/disable
* Don't call to array
* Use sets for usergroup keys and user keys instead
* LanguageIsoCode instead of Language
* Update CompatibilitySuppressions after changin enumerable to set
---------
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
Co-authored-by: kjac <kja@umbraco.dk>
* Add default super user key to migrations
* Start refactoring all interfaces signatures with ids
* Refactor datatype service to use userKey pattern instead
* Refactor ContentEditingService to use userkeys
* Refactor services to userKey
* Refactor more services to use userkey instead of id
* Refactor RelationService to use userKeys
* Refactor template service to use keys instead of ids
* Refactor fileservice to use keys instead of ids
* Refactor LocalizationService to use keys instead of ids
* Refactor PackagingService to use keys instead of ids
* Refactor TemplateController to use current user keys
* Refactor DataTypeContainerService.cs
* Refactor DataTypeService to use keys instead of ids
* Fix up tests
* Fix up media editing service to use userkey instead of ID
* Update service ctor to avoid ambigious ctors
* refactor DataTypeService
* Refactor DataTypeService to not have a default value for parentKey
* Apply suggestions from code review
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
* Update comment
* Add suppression file
* Add backoffice CompatibilitySuppressions
---------
Co-authored-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
* Add IsNullOrWhiteSpace Extension method
IsNullOrWhiteSpace extension method for IHtmlEncodedString
* Move extension method
* Add a UnitTest for the IsNullOrWhiteSpace extension method
* Update unit test
(cherry picked from commit 9771e77243)
* Fixes#13715 issue with simple logviewer searches
* Update Logviewer test - to ensure MessageLike and simple equivalent returns same result count to help catch
(cherry picked from commit d38fabea4a)
* API for domains and hostnames incl. unit tests
* Update Open API json
* Update other unit tests to use new domain service methods where applicable
* Fix merge + update models to new naming scheme
* Handle attempts to add the same domain twice + unit tests for duplicate domain handling
* Review fixes
* Add IsNullOrWhiteSpace Extension method
IsNullOrWhiteSpace extension method for IHtmlEncodedString
* Move extension method
* Add a UnitTest for the IsNullOrWhiteSpace extension method
* Update unit test
* Moved deleteAllMedia to afterEach, the reason for that is that we delete all the media in each test.
* Added additional timeout and a WaitForTimeout(), the reason for the WaitForTimeout is because it can take a second for the modelsbuilder to update the view.
* Added more timeout for the isSuccessNotificationVisible. Updated the helper ensureNameNotExists so they actually delete the partialViews
* Updated the locators for deleting the UK language. Added an expect for checking if the UK language is visible in the UI
* Updated the position where the dragAndDrop drops to
* Changed the trace so we only save the trace on the first retry, it saves a lot of time when the tests are running, since we dont need to save the trace and then delete the trace after each successful test
* Updated locators. Added an expect so the test waits until the / is visible in the URL before going further into the test
* Changed back to retain on failure on the pipelines, the reason for that is if a test only fails once, then we wont see what the actual error was in the test when looking on the pipeline.
* Added an expect so we wait until the page is loaded for packages
* Updated the dragAndDrop so they hopefully work.
* Changed values for dragAndDrop
* Updated the dragAndDrop values
* Bumped playwright version
* Added tests for testing if the rendering is working as intended for the block grid editor
* Added Layout stylesheets for testing
* We are now using the page.toHaveScreenshot() which checks if the test looks the same as the pngs.
* Updated the toHaveScreenShot so they now take in a shorter name for the pngs
* Updated the page.goto so they new go the to baseUrl based on the umbracoConfig
* Added additional pngs for the Linux tests
* Updated the pngs for linux yet again
* Add parent key to CopyingNotification
* Use parentkey on notifications
* Implement ParentKeys for Copying notification
* Obsolete parentId
* Implement MoveToEventInfoBase
* Refactor MovingToRecycleBinNotification to use the new MoveEVentInfoBase
* Refactor MediaMovingToRecycleBinNotification
* Refactor MovedToRecycleBinNotification to use new MoveEventInfo
* Refactor ContentMovedToRecycleBinNotification to use new MoveEventInfo
* Start implementing parent key in moveinfo
* Add FIXME's to move methods
* Refactor Move to get parentKey for descendants
* Add FIXME for move method
* Use MoveToRecycleBinEventInfo in RelateOnTrashNotificationHandler
* Add fixme's to DataTypeRepository
* Add obsolete messages
* Revert changes in ContentTypeServiceBaseOfTRepositoryTItemTService.cs
* Fix bad indentation
* Pass the recursive variable
* Revert changes in ContentService.cs
* Refactor MoveEventInfo to not duplicate equals method
* Refactor Equals to not duplicate code
* Add UnitTests of Equals
* make equals public and add non-happy path tests
* Remvoe duplicate call to base
---------
Co-authored-by: Zeegaan <nge@umbraco.dk>
* Added test for the advanced section under the block grid editor in content
* Bumped versions
* Added fixture template and customView
* Updated naming of tests
* Added test for testing the area of the blockGridDataType
* Bumped version of playwright, builders and the helpers
* Added additional test timeout
* Added additional timeout since some test can be slow and timeout
* Added additional mediaLibrary to the path
* Changed so we now use slow which increases the test timeout by three times
* Changed to slow instead of setting timeout