* Changed to use TryParse
* Changed to be a null check instead
* Update to "is false" syntax and add unit tests.
---------
Co-authored-by: Andy Butland <abutland73@gmail.com>
* Provides an abstraction for creating the JavaScriptEncoder used in SystemTextConfigurationEditorJsonSerializer.
* Generalised JSON serialization encoder factory to work for all System.Tex.Json serializers.
Added the serializer's name as a parameter to allow for different encodings per serializer if required.
* Fixed tests by removing use of obsolete constructors.
* Removed name parameter and used a generic type instead.
* Remove date object conversion as valueEditors don't seem to need it
* Update fault summary reference
* Added justification comment.
---------
Co-authored-by: Andy Butland <abutland73@gmail.com>
* Fix nullability of Children extension
* Fix nullability of methods throughout the CMS
* Fix return types of some methods that cannot return null
* Revert nullable changes to result of ConvertSourceToIntermediate for property editors (whilst some property editors we know won't return null, it seems more consistent to adhere to the base class and interface nullability definition).
* Updated new webhook events to align with new nullability definitions.
* Reverted content editing service updates to align with base classes.
* Applied collection nullability updates on content repository to interface.
* Reverted value converter updates to match interface.
* Applied further collection updates to interface.
* Aligned media service interface with implementation for nullability.
* Update from code review.
---------
Co-authored-by: Ivo van der Bruggen <ivo@dutchbreeze.com>
Co-authored-by: Ivo van der Bruggen <ivo@vdbruggensoftware.com>
Co-authored-by: Andy Butland <abutland73@gmail.com>
* Fix for invalid state in JsonBlockValueConverter when an unused layout has a nested array
* Improved comments as suggested by copilot review, also fixed code style miss
* Added check for malformed JSON with more closing array tokens then opening tokens
* Use data type configuration to determine default value for empty toggle property values.
* Added/updated unit tests.
* Fixed failing integration tests.
* Applied similar default value display for the slider property editor and aligned implementation of true/false with this.
* Fixed unit tests.
* Removed "duplicate" JsonPropertyName attributes and added a custom TypeInfoResolver for data type configuration so we can re-use the existing ConfigurationField attributes.
* Minor cleanup
---------
Co-authored-by: nikolajlauridsen <nikolajlauridsen@protonmail.ch>
* Block level variance - initial commit
* Remove TODOs
* Only convert RTEs with blocks
* Fix JSON paths for block level property validation
* Rename Properties to Values
* Correct the JSON path of block level validation errors
* Make it possible to skip content migration + ensure backwards compat for the new block format
* Partial culture variance publishing at property level
* UDI to key conversion for block editors - draft, WIP, do NOT merge 😄 (#16970)
* Convert block UDIs to GUIDs
* Fix merge
* Fix merge issues
* Rework nested layout item key parsing for backwards compatibility
* Clean-up
* Reverse block layout item key calculation
* Review
* Use IOptions to skip content migrations
* Remove "published" from data editor feature naming, as it can be used in other contexts too
* Parallel migration
* Don't use deprecated constructor
* Ensure that layout follows structure for partial publishing
* Block Grid element level variance + tests (incl. refactor of element level variation tests)
* Rollback unintended changes to Program.cs
* Fix bad casing
* Minor formatting
* RTE element level variance + tests
* Remove obsoleted constructors
* Use Umbraco.RichText instead of Umbraco.TinyMCE as layout alias for blocks in the RTE
* Fix bad merge
* Temporary fix for new cache in integration tests
* Add EditorAlias to block level properties
* Remove the unintended PropertyEditorAlias output for block values
* Add EditorAlias to Datatype Item model
* Update OpenApi.json
* Introduce "expose" for blocks
* Strict (explicit) handling for Expose
* Improve handling of document and element level variance changes
* Refactor variance alignment for published rendering
* Block UDI to Key conversion should also register as a conversion
* Convert newly added RTE unit test to new RTE blocks format
* Minor review changes
* Run memory intensive tests on Linux only
* Add tests proving that AllowEditInvariantFromNonDefault has effect for block level variance too
* Fix the Platform annotations
* Removed Platform annotations for tests.
* Fix merge
* Obsolete old PublishCulture extension
* More fixing bad merge
---------
Co-authored-by: Niels Lyngsø <niels.lyngso@gmail.com>
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
* 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>
* Removes lots of files used by the old backoffice and that is not needed for the management api
* A little clean-up
---------
Co-authored-by: kjac <kja@umbraco.dk>
* Force system text json for IJSonSerializer
* Migrate ColorPickerValueConverter
* Move ColorPickerValueConverter
* Clean up ColorPickerValueConverter
* Remove obsoleted property editors
* Migrate FlexibleDropdownPropertyValueConverter to System.Text.Json
* Use IJsonSerializer instead and move the value converter to Core
* Migrate ImageCropperValueConverter to System.Text.Json
* Inject jsonserializer in test and obsolete old constructor
* Migrate JsonValueConverter to System.Text.Json
* Remove ContextualConfigurationEditorJsonSerializer
* Remove JsonNetSerializer
* Remove obsolete DeserializeSubset from JsonSerializer interface
* Fix FlexibleDropdownPropertyValueConverter
* Update test JSON to be actual valid json
* Update more test json
* Update time format to be valid
* Add JsonPropertyName to models
* Create system text serializer
* Assign property names with system text
* Use the new serializer
* Impement AutoInterningStringConverter with System.Text.Json
* Implement TextAutoInterningStringKeyCaseInsensitiveDictionaryConverter
* Make CaseInsensitiveDictionaryConverter
* Force datetimes to be read as UTC
* Remove usages of Newtonsoft.Json
* Remove text prefixes
* Remove unused Newtonsoft converter
* Remove more newtonsoft
* Remove duplicate implementation
* Rmove usage of missing class in tests
* Ignore null values
* Fix tests
* Remove Newtonstoft reference from NuCache
---------
Co-authored-by: Elitsa <elm@umbraco.dk>
* Add in-browser postman callback url
* Added a jsonconverter for property editor configuration boolean values that are persisted as numbers and serialized as strings...
---------
Co-authored-by: Sven Geusens <sge@umbraco.dk>
* Added functionality to split det swagger doc into multiple definitions. Most (maybe too much) is still shared between the apis.
* Fixed issue with duplicate operation ids when we have multiple versions of an endpoint
* use strong types instead of var
* Updated OpenApi.json
* Formatting
* formatting
* Delete old files that is not implemented in api.common
* Updated openAPi after merge
---------
Co-authored-by: Zeegaan <nge@umbraco.dk>
* Add key to UserGroupDto
* Fix renaming table in sqlite
The SqliteSyntaxProvider needed an overload to use the correct query
* Start work on user group GUID migration
* Add key index to UserGroupDto
* Copy over data when migrating sqlite
* Make sqlite column migration work
* 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
* Use unscoped migration for adding GUID to user group
* Make sqlite migration work
It's really not pretty, square peg, round hole.
* Don't re-enable foreign keys
This will happen automatically next time a connection is started.
* Scope database when using SQLServer
* Don't call complete transaction
* Tidy up a couple of comment
* Only allow scoping the database from UnscopedMigrationBase
* Fix comment
* Remove remark in UnscopedMigrationBase as it's no longer true
* Add keys when creating default user groups
* Map database value from DTO to entity
* Fix migration
Rename also renamed the foreign keys, making it not work
* Make migration idempotent
* Fix unit test
* Update CompatibilitySuppressions.xml
* Add GetUserGroupByKey to UserService
* Add ByKey endpoint
* Add UniqueId to AppendGroupBy
Otherwise MSSQL grenades
* Ensure that languages are returned by PerformGetByQuery
* add POC displaying model
* Clean up by key controller
* Add GetAllEndpoint
* Add delete endpoint
* Use GetKey to get GUID from id
Instead of pulling up the entire entity.
* Add UserGroup2Permission table
* Fetch the new permissions when getting user groups
* Dont ToString int to parse it to a short
I'm pretty sure this is some way old migration type code that doesn't make any sense anymore
* Add new relation to GetDeleteClauses
* Persist the permissions
* Split UserGroupViewModel into multiple models
This is to make it possible to make endpoints more rest-ish
* Bootstrap create and update endpoints
* Make GetAllUserGroupController paged
* Add method to create IUserGroup from UserGroupSaveModel
* Add sanity check version of endpoint
* Fix persisting permissions
* Map section aliases to the name the frontend expects
This is a temporary fix till we find out how we really want to handle this
* Fix up post merge
* Make naming more consistent
* Implement initial update endpoint
* Fix media start node
* Clean name for XSS when mapping to IUserGroup
* Use a set instead of a list for permission names
We don't want dupes
* Make permission column nvarchar max
* Add UserGroupOperationStatuses
* Add IUserGroupAuthorizationService
* Add specific user group creation method to user service
* Move validating and authorizing into its own methods
* Add operation result to action result mapping
* Update create controller to use the create method
* Fix create end point
* Comment out getting current user untill we have auth
* Add usergroup service
* Obsolete usergroup things from IUserService
* Add update to UserGroupService interface
* User IUserGroupService in controllers
* User async notifications overloads
* Move authorize user group creation into its own service
* Add AuthorizeUserGroupUpdate method
* Make new service implementations internal and sealed
* Add update user
* Add GetAll to usergroup service
* Remove or obsolete usages of GetAllUserGroups
* Add usergroup service to DI
* Remove usage of GetGroupsByAlias
* Remove usages of GetUserGroupByAlias
* Remove usage of GetUserGroupById
* Add new table when creating a new database
* Implement Delete
* Add skip and take to getall
* Move skip take into the service
* Fixup suggestions in user group service
* Fixup unit tests
* Allow admins to change user groups they're not a part of
* Add CompatibilitySuppressions
* Update openapi
* Uppdate OpenApi.json
again
* Add missing compatibility suppression
* Added missing type info in ProducesResponseTypeAttribute
* Added INamedEntityViewModel and added on the relevant view models
* Fixed bug, resulting in serialization not being the same as swagger reported. Now all types objects implementing an interface, is serialized with the $type property
* updated OpenApi.json
* Added missing title in notfound response
* Typo
* .Result to .GetAwaiter().GetResult()
* Update comment to mention it should be implemented on CurrentUserController
* Validate that start nodes actually exists
* Handle not found consistently
* Use iso codes instead of ids
* Update OpenAPI
* Automatically infer statuscode in problemdetails
* Ensure that the language exists
* Fix usergroup 2 permission index
* Validate that group name and alias is not too long
* Only return status from validation
We're just returning the same usergroups, and this is less boilerplate code
* Handle empty and null group names
* Remove group prefix from statuses
* Add some basic validation tests
* Don't allow updating a usergroup to having a duplicate alias
---------
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Moved refactor from V12 based branch
* Remove obsolete config property to avoid obsoletion warnings
* Clean up test models
* Make the datatype API a little less confusing by introducing explicit models for create and update
* Remame "Configuration" to "Data" to make FE happy :)
* Safeguard deserialization of empty configs
* Less strict number handling for deserialization
* Prepare for data type config migrations
* Attempt to have contextual config serializers
* Update OpenAPI spec with (temporary) data type controller
* Fix unit tests
* Update compat suppressions (allow breakage for datatype and configuration editor)
* Make the duplicate JsonObjectConverter implementation private