* Adds new functionality to the migrations.
This requires a migration to call Context.SetDone() on the migration context. This happens automatically on scoped migrations before the scope is completed. But migrations inheriting the UnScopedMigrationBase needs to call this manually, inside the scopes or when it is considered done.
Thereby, we minimize the risk (and eliminate it for SqlServer) that a migration is executed but the state is not saved.
If a migration is executed without the SetDone is called, the migration upgrader throws an error, so we do not start executing the next migration
* Updated tests
* Renamed after review suggestion
* Rename in test
* More renaming after review
* Remove public modifier from interface
* Add missing space in exception message
---------
Co-authored-by: nikolajlauridsen <nikolajlauridsen@protonmail.ch>
* Do not add index if it already exists
* Add the JsonObjectConverter by default. This is required by the block editor
* Update test to reflect that fact we have the json object converter applied
* Removed hard waits
* Updated tests for Template and Partial View - not done
* Added insert section tests
* Used defaultTemplateContent to avoid duplicate code
* Added insert section tests
* Added missing tests for Partial View
* Added missing tests for Scripts
* Added missing tests for Stylesheet
* Added missing tests for Template
* Changed method's name due to test helper changes
* Added skip tests
* Bumped version of test helper
* Reversed waits
* Changed createThreeDotsButton to createButton due to UI changes
* Removed List View - Members tests as the UI changes
* Added more waits
* Removed unnecessary waits
* Implement using keymap for member
* Remove current usages of GetUserById
* User userId resolver to resolve user key
* Refactor user repository to use GUID not int
* Add happy path test
* Remove user in cache when user gets updated
* Use await in async method
* Fix up according to review
* Update IMetricsConsentService.cs to have async method
* Fix according to review
* Fix more according to comments
* Revert "Fix up according to review"
This reverts commit a75acaaa
* Get current backoffice user from method
* Update user repository delete functionality
* Fix up more test
* Try to get user by id if key fails
* Add user key as required claim
* Fix tests
* Don't set claim in BackofficeController
* Create constant for the Sub claim
---------
Co-authored-by: kjac <kja@umbraco.dk>
* Update JsonUdiConverter to support Udi, GuidUdi and StringUdi types
* Require boolean (like) value and rename to JsonFuzzyBooleanConverter
* Add read/write only JsonConverters and align naming
* Rename SystemTextJsonSerializer to DefaultJsonSerializer
* Rename SystemTextConfigurationEditorJsonSerializer to DefaultConfigurationEditorJsonSerializer
* Add JsonUdiRangeConverter
* Rename JsonFuzzyBooleanConverter back to JsonBooleanConverter
* Fix value type check in JsonObjectConverter
* Revert class names
* Updated tests
* Post fix after merge.
---------
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Updated nuget packages + added migrations for OpenIddict - Currently can only be executed using unatttended installs
* Added new Premigration concept - Migrations that always runs unattended before other migrations
* Apply suggestions from code review
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
---------
Co-authored-by: Zeegaan <skrivdetud@gmail.com>
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* Fixed issue with SqlServer and optimized queries to not do the actual paging if total count is 0
* Cleanup
---------
Co-authored-by: Elitsa <elm@umbraco.dk>
* Align FromArtifact return type with IDataType.ConfigurationData
* Align Alias nullability with interface
* Lazily initialize ArtifactDependency collection when not set
* Remove ShouldSerializeChecksum (not used by STJ)
* Remove obsolete methods and default interface implementations
* Order dependencies once when setting collection
* Update test to include artifact Checksum property
* Move manifests to their own API group and fix access policies
* Update OpenApi.json
* add an endpoint to fetch "private" packages, i.e. AllowPublicAccess=false
* Review comments
* update OpenAPI.json
* update OpenApi.json
* allow /umbraco/logout to be used for PostLogoutRedirectUris when logging out through the management api
* use the Umbraco.Extensions string extensions instead
* add constraints to the BackofficeDefaultController to handle the cases of 'install', 'upgrade', and 'logout'
---------
Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
* Obsoletions related to Delivery API
* Fix TypeLoader and TypeFinder tests
* Remove obsolete and default implementations of IFileSource and IFileTypeCollection
* More Delivery API related obsoletions
* VariationContextAccessor related
* ValueFactories obsoletion and fix references
* ValueSetBuilders obsoletions
* ValueConverters obsoletions
* Other obsolete ctors and methods
* Forgotten VariationContextAccessor obsoletion
* More obsoletions
* XPath related obsoletions
* Revert XmlHelper changes
* Delete RenamedRootNavigator and its tests
* Fix test
* XmlHelper obsoletion
* Return null instead of GetXPathValue
* Obsolete entire class instead
* Remove XPath obsoletions from IPublishedCache
* Remove XPath-related if-block that is no longer needed
* Change obsolete msg for classes needed for NuCache
* Moving classes to NuCache and making them internal
* Remove more XPath-related obsoletions
* Remove NavigableNavigator and its tests
* Cleanup
* Remove Xpath references from tests
* Revert interface deletion in MediaCache
* Using XOR operation
Co-authored-by: Nuklon <Nuklon@users.noreply.github.com>
---------
Co-authored-by: Nuklon <Nuklon@users.noreply.github.com>
* Support containers for blueprints
* Update OpenApi.json
* Fix tree ordering
* Add CancellationToken to new endpoints
* Change to doc blueprint specific things
* Fix policies
* Cleanup
* Use ContentBlueprintEditingService methods instead of underlying ContentService
* Review comments
---------
Co-authored-by: Elitsa <elm@umbraco.dk>
* Fix wrong service name
* Move tests to correct place and fix naming
* Introducing a test base
* Tests IContentBlueprintEditingService
* Remove comment
* Adding Assert.Multiple
* More Assert.Multiple + Can_Create_With_Basic_Model() and Cannot_Create_When_Content_Type_Not_Found()
* remove the temp login screen
* set login build back to esm
* convert razor entrypoint to show new login screen
* enable loading a user defined stylesheet that can be overridden through RCL mechanics
* remove unused file
* for now, remove the call to the old `localizedtext` endpoint until a replacement has been built
* add fallback font
* remove login to the old backoffice
* change models for twoFactorView
* Send view that have to be used for 2fa.
* get 2fa providers from the login call directly
* Return 2fa providers
* map enabledTwoFactorProviderNames to the view
* use correct endpoints for 2fa
* Send link
* change key to id in querystring
* improve localization
* merge authUrl
* Added flow query parameter
* remove unused getter
* remove debug info
* fix fallback value
* fallback value
* Added invite url to email
* Clean up
* Added password configuration to the verify responses, so the client knows, and have confirmed the user is allwed to see it
* allow reset password
* Allow anonymous on invite create password
* open api
* check for invite
* fix fallback text
* validate invite token
* try to extract the problem details object
* add error logging
* fix invite user parameters
* Use correct id for performing user
* Allow password reset on yourself without the old password, if you are currently invited
* hardcode the authorize endpoint url for now
* fix handlers and disable icons for now
* import icons from backoffice client
* add backoffice path to icons
* fix handler for 2fa custom view
* update image temporarily
* remove old icon registry
* convert login components to UmbLitElement
* convert `UmbAuthContext` into a real context with a token
* cleanup dependencies
* optimise vite
* remove lit
* optimise external login component loader
* use generated resources for reset password
* use generated resources for all methods
* import and register the main bundle
* register localization
* change localization keys
* update all localization keys to new format
* replace tokens
* copy code
* added danish translations
* convert to lowercase
* all languages should have same weight
* added german translations
* add missing variable
* missing text
* added dutch translations
* added swedish translations
* added norwegian translations
* add temporary fix so the login app can be built
* make sure BuildLogin is run only after BuildBellissima has been run to ensure the dependencies are present on disk
* run the real login build in pipelines
* set vite language to en-us
* optimise msw warnings
* wait a bit before rendering the form so we know everything has been loaded
* Add external login endpoint + move models around
* Allow FORM submissions to the external login endpoint
* rename `IdentityProvider` back to `Provider` to avoid a breaking change from V13
* type in url for login-external manually (for now) since route attributes are no longer a thing
* move GET back to POST for external forms
* load in public manifests on boot of the login screen
* Clean up
* handle the case where an external login provider has disabled local login and show a message instead of the login form
* remove external login providers from the server login screen
* add more translations
* use the friendly greeting for the error layout
* show login form
* add mock handler for public manifest endpoint
* remove the external login layout
* fix test
* Added generic English localization
as a fallback language.
---------
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
Co-authored-by: kjac <kja@umbraco.dk>
Co-authored-by: leekelleher <leekelleher@gmail.com>
* Removed api tests for RelationType since it is impossible to create/update/delete relation type
* Fixed api tests for UserGroup
* Fixed api tests for UserAvatar
* Fixed api tests for User
* Fixed api tests for Temporary File
* Fixed api tests for Dictionary
* Fixed api tests for DataType
* Fixed api tests for DataTypeFolder
* Cleaned up
* Bumped version of test helper
* Update tests/Umbraco.Tests.AcceptanceTest/tests/ApiTesting/Dictionary/Dictionary.spec.ts
Co-authored-by: Andreas Zerbst <73799582+andr317c@users.noreply.github.com>
* Reversed the api tests for Relation Type
---------
Co-authored-by: Andreas Zerbst <73799582+andr317c@users.noreply.github.com>
* Get blueprint by key
* Renaming
* Implementing DeleteBlueprintAsync
* Fixing tests to use the new method
* Making ContentControllerBase abstract
* Cleanup
* Implementing Delete blueprint endpoint
* Revert obsoletion in ContentService.cs
* More reverting
* Remove usings
* Introducing IContentBlueprintEditingService
* Refactor Get and Delete blueprint endpoints to use the new IContentBlueprintEditingService
* Fix base inheritance case in SchemaIdSelector
* Creating RequestModelBase for UpdateDocument to be reused in both document and blueprint models
* Creating DocumentResponseModelBase to be reused in both document and blueprint models
* Renamed blueprint response model for item endpoint to be aligned with the rest of the item models
* More renaming changes of the DocumentBlueprintItemResponseModel
* Refactor ByKeyDocumentBlueprintController to make use of the new blueprint models
* New blueprint models and mapping
* Adding UpdateAsync to ContentBlueprintEditingService
* Adding IDocumentBlueprintEditingPresentationFactory.cs
* Adding UpdateDocumentBlueprintController.cs
* Adding methods required from the base
* Fixing bug in document type mapping - mapping incorrect key
* Cleanup
* Fix item endpoint
* Adding MapCreateModel
* Adding create model
* Creating request model base + related classes
* Another request model
* Blueprint editing service
* Adding create controllers
* Adding DuplicateName operation status for blueprints and handling it
* Updating OpenApi.json
* Fix comment
* Fix mapping
* Adding comments
* Passing in id for create blueprint from document model
* Mapping default state to Draft - no need to calculate it, it will always be that for blueprints
* Cleanup
* Update OpenApi.json
* Review comments
* Fix policies
* More policy updates
* Rename/Move/duplicate PaginationService to facilitate conversion closer to the data layer
Duplication is because of internal modifier as we don't want to expose these temporary classes
* Move Guid to Int Extensions into core + add unittests
* Added Document version endpoints
Updated used services to use async methods
* Moved PaginationConverter into core so it can be used by the service layer
* Endpoint structure improvements
* Updating OpenApi.json
* Add greedy constructors for contentService tests
* Namespace changes and naming cleanup
* Update openapispec again...
* Refactor injected services
* PR suggestion updates
- Move endpoints into their own structural section as they are also in a different swagger section
- Naming improvements
- Allign PresentationFactories with similar classes
- Cleanup unused assignments
- Cleanup refactoring comments
- Improve obsoletion remarks
* Cleanup
* ResponseModel improvements
* OpenApi spec update
---------
Co-authored-by: Sven Geusens <sge@umbraco.dk>
Co-authored-by: Elitsa <elm@umbraco.dk>
* Bumped version of test helper
* Changed clickCreateButton to clickCreateLink due to UI changes
* Bumped version of json builder
* Changed delete folder method
* Bumped version of test helper
* Added skip tests since currently only can view relations
* Handle sensitive properties in the Management API
* Use Assert.Multiple to catch all failing tests in one run
---------
Co-authored-by: Sven Geusens <sge@umbraco.dk>
* Remove explicit parent context in API outputs
* Add ancestor endpoints for document and data type (experimental for now)
* Add ancestor endpoints for doctypes, media, mediatypes, partial views, scripts, static files, stylesheets and templates
* Add unit tests for ancestor ID parsing
* Add ancestor endpoint for dictionary items
* Update OpenApi.json
* Fix merge and regenerate OpenApi.json
* Regenerate OpenApi.json
* Rename "folder" to "parent" for consistency
* Fix merge
* Fix merge
* Include "self" in ancestor endpoints
* Handle ancestors for root items correctly
* Remove "type" from recycle bin items
* Tests against fixed values instead of calculated ones.
---------
Co-authored-by: Sven Geusens <sge@umbraco.dk>
* Created extension class so we can ensure native line endings
* Added usage of extension method for ensuring native line endings
* Added tests, to see if the snippets return the correct content
* Removed space