* Add additional validation when removing a user from usergroup
* Add additional validation to UpdateUserGroups
* Don't re-implement operation results
* Add additional validation to the update user endpoint
* Complete scopes where it's safe to do so
* Implement endpoints
* Update to orderby and orderdirection
* Implement Filter endpoint
* Remove old ByEditorUiAlias endpoint
* Add clarifying comments
* Fix up according to review
* use model in reflection
* Remove leftover sorting
* remove ordering
* Implement skip and take directly in service
* Dont use GetAllAsync
* Update OpenApi
* Refactor get all to return full list if no keys are given
* Revert "Refactor get all to return full list if no keys are given"
This reverts commit 1dd3167e96520e54691f038b6b477e5d5509da45.
* Use invariant contains
* A little query optimization
---------
Co-authored-by: kjac <kja@umbraco.dk>
* Adding configuration options for segment settings
* Add "useSegments" to the document type configuration endpoint
* Adding additional configuration for creation of non-existing segments
* Migrate ObjectJsonExtensions
* Use more generic exception to not use Newtonsoft
It should matter if it's a JsonReaderException, if we can't read we can't read
* Remove obsoleted constructors
* Use more generic exception in ContentValueSetBuilder
* Fix constructors
* Remove UdiRangeJsonConverter
* Remove more legacy newtonsoft stuff
* Migrate away from newtonsoft in CacheInstructionService
* Remove unused model binders
* Remove more newtonsoft
* Remove newtonsoft from DatabaseServerMessenger
* Remove now irrelevant benchmark
* Remove the usage of Newtonsoft from ImageCropperTemplateCoreExtensions
The value converter will never return JObject, JsonDocument, or JsonNode
* Remove usages of newtonsoft in ComplexPropertyEditorContentNotificationHandler
JTokens are no longer returned, so we don't need to check for it
* Remove newtonsoft references
* Re-add newtonsoft dependency to Umbraco.Tests.Common
* Fix package references
* move dependency
---------
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Refactor to accept multiple cultures
* Add test
* Move logic into service
* Remember to complete scope
* Move scope creation.
* Add test
* Close scope on early return
* Handle invalid cultures with bad request
* Handle valid cultures based on content
* Change return type if a culture is required
* Refactor content publishing service to have 1 unpublish method
* Update tests
* Return better error
* Scope completes
---------
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Refactored the Authorizers to be reuseable from core by now knowing about principal but only the IUser. Also moved them to core
* Fix multiple enumeration
* Fix more multiple enumerations
---------
Co-authored-by: Nikolaj <nikolajlauridsen@protonmail.ch>
* Make create user endpoint work with the supplied id
Return 201 instead of 200 with correct resource identifier
* Add ResetPassword endpoint
* Bring changepassword route inline with other resource actions
* Fixed User endpoints not advertising all their possible response codes/ models
Fixed certain endpoints not authorizing targeted user(s) versus the admin needs admin authorization requirement
Fixed a user not found response bug for the update flow
Fix spacing
* Fixed CurrentUser endpoints not advertising all their possible response codes/ models
Fix incorrect responseStatus in UserService.GetPermissionsAsync
* Update OpenApi definition
Fix smal model oversights in previous commits
* Update incorrect Response type
* Check for duplicate id's in user create validation
* Remove unnecasary returnmodel from changepassword
Renamed the model to it's remaining usage
* rename bad constructor parameter
* Renamed method parameters for better readability and usage
* Fixed wrong userkey being passed down because of (refactored) bad naming
Technically doesn't change anything as the two id's should be the same in this case (reset with token is always for self)
* Fixed resetpassword bug
* Update openapi
* Update src/Umbraco.Core/Services/UserService.cs
Co-authored-by: Kenn Jacobsen <kja@umbraco.dk>
* Remove old password from change user password request model
Only makes sense when doing it for the logged in user => current endpoint
---------
Co-authored-by: Sven Geusens <sge@umbraco.dk>
Co-authored-by: Kenn Jacobsen <kja@umbraco.dk>
* Add models & mapping
* Add controller
* Add create async to service
* Add auth policy
* Implement delete
* Rename response model
* Implement updateAsync
* Refactor update to use own model
* Implement all async counterparts for IMemberService
* Add tests
* Implement update member group mapping
* Dont fail if updating the current user group
* Return not found if not found
* Add missing OperationResults to MemberGroupOperationStatusResult
* Add 404 to response type
* Update openapi
* Update OpenApi
* Update OpenApi.json
* Output notification handler messages as a header
* Make the notification contract public
* Moved the Notification type and added it to swagger schema
* Update swagger docs
---------
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>
* It builds..
* Added granular permissions
* Added granular permissions
* Rename content to document
* Added migration
* Fixed issues causing the migration from v13 was not possible.
* Merged Permissions and Granular Permissions in viewmodel
* Prepared the viewmodel to a future where permissions can be more types.
* OpenApi
* Allow to translate a single char to many strings
* Use frontend friendly values for known permissions
* Validate the documents exist
* Allow setting non-document settings
* Add "$type" when required
* Rename to presentation model and update OpenApi.json
* OpenApi.json
* Fix tests
* OpenAPI
* Fixed issues with upgrades
* Add the discriminator name
* Fixed issues that only happended on SqlServer
* Fixed queries for SqlServer
* Clean up
* More cleanup
* Fix issue when migrating sqlserver
* Split fallback permissions into own concept in view model
* Also split on current user
* Added a extenable pattern for mappers between DTO => Granular Permission => ViewModel and ViewModel => Granular Permission
* Fixed issue with new exists method, that did not take duplicate keys into account.
* Added sections to current user response model
* Formatting fixes
* Move class to its own file
* xml comment
---------
Co-authored-by: Zeegaan <skrivdetud@gmail.com>
* Move magical route to management api
* Move auth around
* Remove "New" cookies, as they are no longer needed
* Move all installer related
* Remove BackOfficeServerVariables.cs and trees
* Move webhooks to management api
* Remove remainting controllers
* Remove last services
* Move preview to management api
* Remove mroe extensions
* Remove tours
* Remove old Auth handlers
* Remove server variables entirely
* Remove old backoffice controller
* Remove controllers namespace entirely
* Move rest of preview
* move last services
* Move language file extension
* Remove old backoffice entirely (Backoffice and Web.UI projects)
* Clean up unused security classes
* Fix up installer route
* Remove obsolete tests
* Fix up DI in integration test
* Add missing property mapping
* Move core mapping into core
* Add composers to integration test
* remove identity
* Fix up DI
* Outcomment failing test :)
* Fix up remaining test
* Update mapper
* Remove the actual project files
* Remove backoffice cs proj
* Remove old backoffice from yml
* Run belissima before login
* Remove caching
* Refactor file paths
* Remove belle from static assets
* Dont refer to old project in templates
* update gitignore
* Add missing files
* Remove install view as its no longer used
* Fix up failing test
* Remove outcommented code
* Update submodule to latest
* fix build
---------
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Removing to ToLowerInvariant from culture and segments
* Adding ToLowerInvariant for DeliveryAPIIndex to not modify the stored data
* Fix failing test - remove ToLowerInvariant
* Added Endpoint to get Document restore information
* Add media version of original paent recycle bin
update document permission
regisered interfaces
* Added restore endpoints
* PR feedback and other cleanup
* Update orignal root parent logic & shrank return model
---------
Co-authored-by: Sven Geusens <sge@umbraco.dk>
Co-authored-by: Bjarke Berg <mail@bergmania.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
* Replace all IsContainer mentions with new ListView property
* Map the list view when creating and updating
* Implement list view migration
* Refactor listview to collection
* Do not assign listview if IsContainer is false
* Fix up HasContainerInPath query
* Update OpenApi.json
* fix up according to review
* Refactor duplicate code to use extension method instead
* Dont make new guid, check for null
* Make extension internal
* Fix up after merge
* Use ReferenceById static method instead of extension
* Fixing route for temp file
* Adding missing ApiController attribute
* Adding new filter view port
* Creating base classes for member and user filters
* Moving actual filter controllers to correct places
* Update OpenApi.json
* Only use datetimeoffset in API
* Updated publish endpoint to take schedule information
* Fixed test builds
* OpenApi updates
* Update OpenApi schema
* Fixed issues with publishing.
* Added validation before publishing. Had to move a lot of classes to core.
* added missing files
* Added validation info to error
* Typo
* Clean up and adding missing result
* Updating to AvailableCultures instead of PublishedCultures
* Handle time needs to be in the future
* validate only cultures that needs to be published
* Fix typos
* Filter out cultures that we are not trying to publish from the validation errors
* Don't filter out only the available cultures, to accommodate non-created variants
* Only allow publish of existing cultures
* Fixed issues found in test
* fixed build
---------
Co-authored-by: Elitsa <elm@umbraco.dk>
* Introduced IDataTypeConfigurationCache
* Applied IDataTypeConfigurationCache to Property Editors and display mapping
* Invalidate new cache trough DataTypeConfigurationCacheRefresher
* Improve IDatatype service to use cached int path when fetching by guid (using idkeymap)
---------
Co-authored-by: Sven Geusens <sge@umbraco.dk>
Co-authored-by: Ronald Barendse <ronald@barend.se>
* register a new IPackageManifestReader to allow to scan the /umbraco/backoffice path for umbraco packages
* add constant
* add logic to extract the importmap from umbraco package manifests
* add html helper to render an importmap
* replace static importmap with new dynamic importmap
* update tests and be more specific about scopes
* remove recursion from PackageManifestReader.cs
* add extra test to validate the importmap
* combine all string manipulation to produce an importmap into HtmlHelperBackOfficeExtensions.cs
* rename IStaticFileHostGenerator to something reflecting its actual usage, and also fix the file names
* use auto properties where applicable
* add getter for BackOfficeHash and use to simplify BackofficeAssetsPath
* ensure BackOffice is always spelled with capital O
* add a way to replace the cachebuster for assets imported through an importmap and ensure magic strings are encapsulated into business logic or constants
* Review changes
* convert primary constructors to explicit and add comments
* convert primary constructor to explicit
---------
Co-authored-by: kjac <kja@umbraco.dk>
* Fix authz status
* Adding another silo for list views
* Adding base classes and handling collection operation statuses
* Change signature to reuse functionality. Fix references
* Adding collection response models
* Adding content and media type collection response models
* Adding mapping
* Adding mapping for document and media types
* Adding list view page model
* Initial implementation
* Moving implementation to service base
* Adding content and media service interfaces for handling list views
* Registering and implementation
* Update controllers to use new services
* Renaming param
* Refactor to pass content type instead of content type key
* Handle the case where only data type is provided
* Add missing operation status
* Update OpenApi.json
* Added comment for a temp workaround
* Removing orderCulture from media interface as it is not yet supported
* Adding a base class for content type collection reference model
* Adding common collection controller base and moving the ContentCollectionOperationStatusResult to there
* Cleaning up controllers after implementing the base class
* Cleaning up concrete controller bases
* OpenApi.json updates
* Changing GetPagedChildren to return a paged model
* Fix ordering
* Adding ,
* Fix wording
* Append operation status to unsuccessful API responses
* A little bit of clean-up
* Update default orderBy value
* Update the default value of orderBy
* Adding missing owner and updater system fields
* Updating OpenApi.json with owner and updater props
* Create base and rename owner to creator
* Update OpenApi.json
* Reordering of properties
* "Owner" will be "creator"
* Fix comment
---------
Co-authored-by: kjac <kja@umbraco.dk>
Removed recursive call from the GetIndexValues method of NoopPropertyIndexValueFactory for backward compatibility and alignment with other property index value factory classes
* Bugfix: MediaCacheRefresher needs to always clear the mediaCache no matter what the publishedState is
* fix: check correct permissions for deleteDocumentFromRecycleBin
* Fix: ImageCropper propertyValues should not hold invalid values.
* Added media delete endpoints
* PR comment fix: Do not schedule cleanup if we know the file does not exist.
* resolved forward merge build conflicts
namespace cleanup
---------
Co-authored-by: Sven Geusens <sge@umbraco.dk>