* Introduce publishNotifications method on IMembershipMemberService.cs
* Fix test
* Add PublishNotificationSaveOptions
* Fix up according to comments
* Use numeric values for flag enum
* Update src/Umbraco.Core/Services/MemberService.cs
Co-authored-by: Andy Butland <abutland73@gmail.com>
* Update src/Umbraco.Core/Services/MemberService.cs
Co-authored-by: Andy Butland <abutland73@gmail.com>
---------
Co-authored-by: Andy Butland <abutland73@gmail.com>
* Add TimedScope
* Use TimedScope in login endpoint
* Use seperate default duration and only calculate average of actual successful responses
* Only return detailed error responses if credentials are valid
* Cancel timed scope when credentials are valid
* Add UserDefaultFailedLoginDuration and UserMinimumFailedLoginDuration settings
* Don't allow create when there is validation errors
* Fix tests
* Add tests
* Fix last test
* Fix more tests
---------
Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
* Property level versioning for the Delivery API using a custom System.Text.Json resolver
* Adding a converter base class that custom converters can implement
* Revert resolver
* Use IHttpContextAccessor for the API version
* Fix attribute and checks in ShouldIncludeProperty
* Fix enumeration
* Fix comment
* Unit tests
* Refactoring
* Remove Assert.Multiple where no needed
* Added Content tests with Approved Color
* Bumped version of test helper
* Make Content tests run in the pipeline
* Using custom datatype builder instead of changing the default approved color data type
* Updated variables
* Fixed comment
* Make all Content tests run in the pipeline
* Reverted
* Validate email for member models
* Add null check or more test cases
* return invalid when not a valid email
* Cleanup
* remove private method in favor of extension
* Remove non used, using statement
---------
Co-authored-by: Elitsa <elm@umbraco.dk>
(cherry picked from commit 6b0f8e7b7c)
* Added tests for userGroup
* Clean up
* Updated userGroup tests
* Updated tests
* Updated tests
* Cleane up
* Cleaned up
* Bumped versions
* Run user tests
* Cleaned up
* Added method for checking if the document tree is empty
* Bumped version
* Reverted
* Added Content tests with custom data type
* Added tests for List View Media data type in Media section
* Updated method name due to api helper changes
* Updated the assertion of Content tests with custom data type
* Bumped version of test helper
* Make all Content tests run in the pipeline
* Skipped test for code editor as it is removed
* Fixed comment
* Make Media tests running in the pipeline
* Bumped version
* Updated code due to ui helper changes
* Bumped version of test helper
* Updated tests for bulk trash in the media section
* Fixed notification message
* Make Content tests and Media tests run in the pipeline
* Added more waits
* Reverted
* Added tests for rendering content with numeric
* Added tests for rendering content with textarea
* Added tests for rendering content with approved color
* Added tests for rendering content with numeric
* Added tests for rendering content with tags
* Added tests for rendering content with textarea
* Updated tests for rendering content with textstring due to test helper changes
* Added tests for rendering content with truefalse
* Bumped version of test helper
* Make all tests for rendering content run in the pipeline
* Fixed comments
* Removed blank lines
* Fixed name
* Make all smoke tests run in the pipeline
* Added tests for rendering content with dropdown
* Added tests for rendering content with Image Cropper - not done
* Updated tests for rendering content due to ui helper changes
* Updated tests for rendering content with image cropper
* Updated tests due to the api helper changes
* Bumped version of test helper
* Make all the tests for rendering content run in the pipeline
* Removed blank lines
* Format code
* Fixed test name
* Reverted
* Added tests for rendering content with numeric
* Added tests for rendering content with textarea
* Added tests for rendering content with approved color
* Added tests for rendering content with numeric
* Added tests for rendering content with tags
* Added tests for rendering content with textarea
* Updated tests for rendering content with textstring due to test helper changes
* Added tests for rendering content with truefalse
* Added tests for rendering content with checkbox list
* Added tests for rendering content with date picker - not done
* Updated tests for rendering content with date picker
* Updated tests for rendering content due to ui helper changes
* Bumped version
* Removed blank lines
* Make Rendering Content tests run in the pipeline
* Changed method name due to test helper changes
* Reverted
* Added tests for rendering content with numeric
* Added tests for rendering content with textarea
* Added tests for rendering content with approved color
* Added tests for rendering content with numeric
* Added tests for rendering content with tags
* Added tests for rendering content with textarea
* Updated tests for rendering content with textstring due to test helper changes
* Added tests for rendering content with truefalse
* Bumped version of test helper
* Make all tests for rendering content run in the pipeline
* Fixed comments
* Removed blank lines
* Fixed name
* Make all smoke tests run in the pipeline
* fix: anchors and query strings do not work
Since the change from UDIs to localLinks in href, the pattern matched a little too much in the href section completely ignoring any "extras" such as querystrings and anchors after the locallink, which meant that the locallink did not get replaced at all if they were present. This is fixed by limiting the regexp a bit.
* fix: legacy links do not follow the same regexp as new links
Because we are no longer matching the whole `href` attribute but only some of its contents, we need to fix up the old pattern. It has been extended with matching groups that follow the same pattern as the new links.
* feat: allow a-tags to be multiline
example:
```html
<a
type="document"
href="/{localLink:<GUID>}">
Test
</a>
```
* fix: split regex into two parts: first a tokenizer for a-tags and then a type-finder
* fix: ensure only "document" and "media" are matching to speed up the pattern
* feat: allow a-tags to be multiline
(cherry picked from commit 35e8f2e460)
* Added test
* Small changes
* Added content start node tests
* Added media start node tests
* Cleaned up
* More updates
* Cleaned up
* Added wait
* Cleaned up
* Bumped helpers
* Updated to run user tests
* Fixed user tests
* Bumped helpers
* Added missing semicolon
* Fixes based on comments
* Run smoke tests
* Add ContentCache test
* Use SemaphoreSlim as write lock
* Apply lock imrpovements to SnapDictionary
* Obsolete unused MonitorLock
(cherry picked from commit c3db3457e7)
* Updated step to verify the notification message
* Added tests for notification message
* Bumped version
* Updated expected notification message
* Bumped version
* Added tests for textstring in the rendered content
* Updated tests for rendering content with textstring
* Added tests for rendering content with numeric
* Added tests for rendering content with textarea
* Removed tests
* Bumped version
* Make all tests for rendering content run in the pipeline
* Make all smoke tests run in the pipeline
* Added more waits
* Updated assert steps
* Fixed api method name
* Added more waits to avoid the failing test in window
* Updated tests due to business changes
* Added more waits to avoid the failing tests in window
* Updated test due to Ui changes
* Bumped version
* Bumped version of test helper
* Bumped version
* Added tests for List view
* More tests
* Added rest of test
* Bumped version
* Fixed failing tests
* Added tests and fixed comments
* Cleaned up tests
* Bumped testhelpers
* Bumped again
* Set condition to only run sql server when enabled
* Run all content test
* Reverted changes
* Added tests for Allow At Root property
* Added Content tests for Allowed Child Nodes property
* Added Content tests for the Allow at root property
* Added Content tests for the Allowed child node property
* Added Content tests for the Collection property
* Added Content tests with allow vary by culture
* Added more waits
* Updated tests due to api helper changes
* Added Content tests with allowed templates
* Bumped version of test helper
* Updated code due to api helper changes
* Fixed naming
* Add tests for all UDI entity types
* Fix IContentBase UDI entity type for blueprints
* Remove redundant switch statements and reorder methods
(cherry picked from commit 609b5f76d4)
* Updated version of test helpers
* Added option to run smoke tests
* Found the issue
* Fixed pipeline
* Removed duplicate file creation
* Removed
* Always run sql server tests
* Removed unused parameter
* Enables sqlServer E2E to run on pipeline
* Removed comment
* Fix warnings SA1111, SA1028, SA1500, IDE1270 in Umbraco.Web.Website, and updated rules.
* Remove warnings: IDE0270: Null check can be simplified
* More SqlServer project warnings resolved
* CS0105 namespace appeared already
* Suppress warning until implementation:
#pragma warning disable CS0162 // Unreachable code detected
#pragma warning disable CS0618 // Type or member is obsolete
CS0162 remove unreachable code
SA1028 remove trailing whitespace
SA1106 no empty statements
CS1570 malformed XML
CS1572 corrected xml parameter
CS1573 param tag added
IDE0007 var not explicit
IDE0008 explicit not var
IDE0057 simplify substring
IDE0074 compound assignment
CA1825 array.empty
Down to 3479 warnings
* - SA1116, SA117 params on same line
- IDE0057 substring simplified
Specific warnings for Umbraco.Tests.Benchmarks
* Fixed IDE0074 compound assignment and added specific warnings for Umbraco.Tests.Common
* Specific warnings for Umbraco.Tests.Integration and Umbraco.Tests.Common
Fixed:
- SA1111, SA1116, SA117 params and line formatting (not all as there are many)
- SA1122 string.Empty
- IDE0057 simplify substring
- IDE0044,IDE0044 make field readonly
- IDE1006 naming rule violation (add _)
- SA1111 closing parenthesis on line of last parameter
- SA1649 filename match type name
- SA1312,SA1306 lowercase variable and field names
* Fixed various warnings where they are more straight-forward, including:
- SA1649 file name match type name
- SA111 parenthesis on line of last parameter
- IDE0028 simplify collection initializer
- SA1306 lower-case letter field
- IDE044 readonly field
- SA1122 string.Empty
- SA1116 params same line
- IDE1006 upper casing
- IDE0041 simplify null check
Updated the following projects to only list their remaining specific warning codes:
- Umbraco.Tests.UnitTests
Typo in `Umbraco.Web.Website` project
* Reverted test change
* Now 1556 warnings.
Fixed various warnings where they are more straight-forward, including:
- SA1111/SA1116/SA1119 parenthesis
- SA1117 params
- SA1312 lowercase variable
- SA1121 built-in type
- SA1500/SA1513/SA1503 formatting braces
- SA1400 declare access modifier
- SA1122 string.Empty
- SA1310 no underscore
- IDE0049 name simplified
- IDE0057 simplify substring
- IDE0074 compound assignment
- IDE0032 use auto-property
- IDE0037 simplify member name
- IDE0008 explicit type not var
- IDE0016/IDE0270/IDE0041 simplify null checks
- IDE0048/SA1407 clarity in arithmetic
- IDE1006 correct param names
- IDE0042 deconstruct variable
- IDE0044 readonly
- IDE0018 inline variable declarations
- IDE0074/IDE0054 compound assignment
- IDE1006 naming
- CS1573 param XML
- CS0168 unused variable
Comment formatting in project files for consistency.
Updated all projects to only list remaining specific warning codes as warnings instead of errors (errors is now default).
* Type not var, and more warning exceptions
* Tweaked merge issue, readded comment about rollback
* Readded comment re rollback.
* Readded comments
* Comment tweak
* Comment tweak
* Reorder templates to save master templates first, and use new ITemplateService
* Add obsoletion
* Fix if statement
* Refactor async calls into async method to avoid multiple get awaiters
* Update interface
* Avoid breaking changes
---------
Co-authored-by: Sven Geusens <sge@umbraco.dk>
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Added E2E pipeline
* Set up CI with Azure Pipelines
[skip ci]
* Update nightly-E2E-test-pipelines.yml for Azure Pipelines
* Updated solution file
* Added fetch depth
* Update nightly-E2E-test-pipelines.yml for Azure Pipelines
* Added a step for installing wait-on
* Added runSqlServerE2ETests
* Update nightly-E2E-test-pipelines.yml for Azure Pipelines
* Update nightly-E2E-test-pipelines.yml for Azure Pipelines
* Updated pipeline so we only run smoke
* Update nightly-E2E-test-pipelines.yml for Azure Pipelines
* Update nightly-E2E-test-pipelines.yml for Azure Pipelines
* Removed pipeline
* Fixed tests
* Fixed tests
* Added timeout
* Fixed rest of the failing tests
* Bumped version
* Added timeout
* Bumped version of helpers
* Added parameter
* Applied fixes for tests and did some skips
* Small changes
* Bumped version
* Fixed comments
* Fix upgrade check repo, so it's able to check more than once :)
* Add VersionCheckPeriod to server configuration output
* Add upgrade check endpoint
* Obsolete unused response model
* Update OpenAPI JSON
* Fix warnings SA1111, SA1028, SA1500, IDE1270 in Umbraco.Web.Website, and updated rules.
* Remove warnings: IDE0270: Null check can be simplified
* More SqlServer project warnings resolved
* CS0105 namespace appeared already
* Suppress warning until implementation:
#pragma warning disable CS0162 // Unreachable code detected
#pragma warning disable CS0618 // Type or member is obsolete
CS0162 remove unreachable code
SA1028 remove trailing whitespace
SA1106 no empty statements
CS1570 malformed XML
CS1572 corrected xml parameter
CS1573 param tag added
IDE0007 var not explicit
IDE0008 explicit not var
IDE0057 simplify substring
IDE0074 compound assignment
CA1825 array.empty
Down to 3479 warnings
fix: issue resolved, where content saving breaks due to saving to umbracoLog with error message like that: String or binary data would be truncated in table 'dto.umbracoLog', column 'parameters'. Truncated value: 'English (United States), German (Switzerland), French (France), Italian (Italy), Arabic (Iraq), Pers'...
* Do not run authentication if Umbraco is not ready for it. Fail instead.
* Fix breaking change
* Spelling + code style :)
---------
Co-authored-by: kjac <kja@umbraco.dk>
* Treat warnings as errors for Umbraco.Cms, Umbraco.Cms.Api.Common and Umbraco.Cms.Api.Delivery projects.
* Treat warnings as errors for Umbraco.Cms.Imaging.ImageSharp and Umbraco.Cms.Imaging.ImageSharp2 projects
* Treat warnings as errors for Umbraco.Cms.Persistence.EFCore.Sqlite, Umbraco.Cms.Persistence.EFCore.SqlServer and Umbraco.Cms.StaticAssets
* Treat warnings as errors for Umbraco.Cms.Targets
* Treat warnings as errors for templates/Umbraco.Templates and Umbraco.JsonSchema
* More projects with warnings as errors.
* Reverted warnings as errors due to some file changes since the update.
* Remove unwanted tag
* Removed warnings as errors on TestData project
* Implement warnings as errors in props file, and exclude specific warnings where appropriate as per PR review suggestions.
* Reverted spaces
* Revert "Reverted spaces"
This reverts commit 3734c45e22.
* Update sdk version to fully support Umbraco.code 2.2.0 dependency on Microsoft.CodeAnalysis.CSharp.Workspaces 4.10.0
* Ignore PathToLongErrors for now in static assets
---------
Co-authored-by: Emma Garland <emma.garland@rocksolidknowledge.com>
Co-authored-by: Sven Geusens <sge@umbraco.dk>
* Updated search services to start searching from a guid based key.
* Solved api breaking changes with new minor version
* Ordering and formatting
* Changed interface default implementation to the new method...
* Consolidated version
* PR review cleanup and renaming
* Added Content tests with content picker
* Removed the test for content picker
* Added Content tests with the default content picker
* Added more Content tests with Content Picker data type
* Added the Content tests with Dropdown
* Added Content tests with Image Cropper
* Updated upload file method due to test helper changes
* Added Content tests with Image Cropper
* Added Content tests with Image Cropper data type
* Added Content tests with Media Picker data type
* Updated Media tests due to ui helper changes
* Bumped version of test helper and json builder
* Make all Content tests run in pipeline - should remove it before merging
* Fixed the name of tests
* Updated the tests for Media Picker in Content section
* Added the Content tests with Multiple Media Picker
* Updated the Content test with Content Picker due to the test helper changes
* Bumped version of test helper
* Fixed the failing tests for Content
* Removed Image Cropper test in this branch
* Added more waits
* Added smoke tags
* Make smoke tests run in the pipeline
* Added Content tests for Image Cropper
* Added smoke tags to make all Image Cropper tests running in the pipeline
* Added Content tests with Member Picker
* Added Content tests with Multiple Image Media Picker
* Added Content tests with Numeric
* Bumped version of test helper
* Make all Content tests running in the pipeline
* Assert that the content is published
* Assert that the content is published
* Fixed code conflict
* Fixed comment and code conflict
* Make all Content tests run in the pipeline
* Refactor the Content tests with different data type
* Cleaned code
* Make the smoke tests run in the pipeline
* Add delivery api toggle
* Add Dockerfile
* add docker compose template
* Ensure no duplicate database containers
* Remove wwwroot/umbraco permission check
We don't need write access to this folder
* Provide environment variables from dokcer-compose
* Build as debug from compose
The compose file is intended to be used for local dev
* Don't store password in docker files
Still not great to store it in .env but it's fine for dev
* Add additional template files
* Add docker ignore file
* Enable delivery API in settings too
* Enable models builder mode toggle
* Add WIP for umbraco release option
* Add starterkit option
* Add option to chose LTS or latest
* Add development mode option
* Add descriptions
* Add display names
* Add backoffice development at explicit default
* Rearrange DevelopmentMode before ModelsBuilderMode
* Allow specifying a port for the compose file
* Add some notes
* Move starterkits into its own template
* Don't update version
* Remove test configuration from Dockerfile
* Add default modelsbuilder option
* Update descriptions
* overwrite default values in IDE development
* Remove obsolete runtime minification
* Try and fix healthcheck
* Don't use post action for starterkit
otherwise it won't work with Rider, also make the version 13.0.0 if LTS is chosen
* Move UmbracoVersion above FinalVersion
Otherwise, rider will use UmbracoVersion for some weird reason
* Fix healthcheck
* Use else instead of second if for modelsbuilder
* Obsolete UmbracoVersion
* Remove custom release option
* Use forward slashes for volumes
* Add MSSQL_SA_PASSWORD env variable
* Temporarily limit acceptance tests so it works
* Try again
* Disable SQLServer integration tests
* Set UseHttps to false in appsettings.Development.json
You still want to be able to use non-https when developing locally
* Fix LTS version
LTS still needs installer endpoints added
* Update permissions of wwwroot/umbraco for v13 sites
* Fix conditional in Program.cs
* Undo pipeline shenanigans
* Updated api tests for Data type due to test helper changes
* Fixed Data Type tests due to test helper changes
* Updated the test for edit password due to ui helper changes
* Bumped version
* Added the test files for article
* Added Content tests with Upload Article datatype
* Added the audio test files
* Fix format
* Updated the Content tests with Upload Article
* Added Content tests with Upload Audio
* Added Content tests with Upload File
* Bumped version
* Make all Content tests run in the pipeline
* Cleaned code
* Make the smoke tests run in the pipeline
* Added Contents test with Textarea
* Added Content tests with textstring
* Removed the tests for Textarea property editor
* Added Content tests for TrueFalse data type
* Bumped version of test helper
* Make all Content tests run in the pipeline
* Cleaned code
* Make the smoke tests run in the pipeline
* Added Content tests with Multi URL Picker
* Bumped version of test helper
* Make all Content tests run in the pipeline - remove it before merging
* Added goToSection step
* Fix comments
* Fix comments
* Fixed comments
* Make the smoke tests run in the pipeline
* Added Content tests with Radiobox data type - not done
* Removed Content test with Tags property editor
* Added Content tests with Radiobox datatype
* Added Content tests with Tags data type
* Created content with data type via API
* Bumped version of test helper
* Make all Content tests run in the pipeline
* Make all smoke tests run in the pipeline
* Added Element <-> Document type switch validation
* Apply HasElementconfigured to block grid and block list
Fix smalle bug + optimization
* Moved some of the logic into warnings trough notifcationhandlers and eventmessages
* Cleanup
* Update openApi spec (merge changes)
* Add IsElement check between parent and child on creation
* Typos
* Transformed HasElementConfigured into HasElementConfigured
* Typo
Co-authored-by: Kenn Jacobsen <kja@umbraco.dk>
* IsElement Validation refactor
Moved validation logic regarding doctype IsElement switch into its own service as it will be consumed by more things down the line
* commit missing services...
* Naming improvements
* Bugfix
* First batch of integration tests for ElementSwitchValidator
* More integration tests!
* Little reformatting
* Changed the default values of block based configuration to match expected values.
---------
Co-authored-by: Kenn Jacobsen <kja@umbraco.dk>
2024-08-15 07:11:17 +02:00
PeterGitHubKvyatkovsky, Petr <pkvyatkovsky@qulix.com>
* Started some tests for imageMediaPicker
* Added tests
* Added additional test
* Fixed based on updates to helpers
* Bumped versions
* Fixes based on comments
* Updated so we run all content test
* Cleaned
* Remove auditlogging from media service
* Refactor to use backofficeSecurityaccessor to get backoffice user
* Fix constructor error
* Reinstate media service move
* Go back to audit type delete
---------
Co-authored-by: Elitsa <elm@umbraco.dk>
* Make missing languages a non blocker for usergroup retrieval
* Add logging
* Update obsolete message
---------
Co-authored-by: Zeegaan <skrivdetud@gmail.com>
* Combining OpenId and OfflineAccess scope
When the client scope is set to "openid offline_access", the returned scope only has the "offline_access" scope. The "openid" scope and the "id_token" are missing. By combining the OpenId and OfflineAccess as return scope, the refresh_token and id_token are returned.
* Update MemberController.cs
Cleaner way, provided by @kjac, to check if the scope has openid and/or offiline_access set.
* Removed type attribute from processed local links
improved code readabilty by using multi return type to private class
* Removed type attribute from processed locallinks in delivery api
* Removed type attribute from expected output regarding locallink parsing
* Added type atttribute removal in deliveryapi for local image link and invalid local links
Test rename for clarity and
* Added tests with empty name for Partial View, Stylesheet, Script and Template
* Added tests with non-empty folder for Partial View, Stylesheet, Script
* Added tests to create a partial view in a folder in a folder
* Moved goToSetting to Arrange
* Fixed the failing tests and added the unhappy path tests
* Fixed the failing tests due to UI changes
* Fixed format
* Bumped version of test helper
* Run the tests for Settings in the pipeline
* Fixed the Member failing tests
* Fixed the Document Type Design Tab failing tests
* Fixed the Media Type Design Tab failing tests
* Fixed the Script failing tests
* Bumped version of test helper
* Bumped version of test helper
* Make block editor base classes public
* Update BlockEditorValues.cs
Change to trigger a new build for #16774
---------
Co-authored-by: Kenn Jacobsen <kja@umbraco.dk>
* Added Content tests with content picker
* Removed the test for content picker
* Added Content tests with the default content picker
* Added more Content tests with Content Picker data type
* Added the Content tests with Dropdown
* Added Content tests with Image Cropper
* Updated upload file method due to test helper changes
* Added Content tests with Image Cropper
* Added Content tests with Image Cropper data type
* Added Content tests with Media Picker data type
* Updated Media tests due to ui helper changes
* Bumped version of test helper and json builder
* Make all Content tests run in pipeline - should remove it before merging
* Fixed the name of tests
* Updated the tests for Media Picker in Content section
* Added the Content tests with Multiple Media Picker
* Updated the Content test with Content Picker due to the test helper changes
* Bumped version of test helper
* Fixed the failing tests for Content
* Removed Image Cropper test in this branch
* Added more waits
* Added smoke tags
* Make smoke tests run in the pipeline
* Removed type attribute from processed local links
improved code readabilty by using multi return type to private class
* Removed type attribute from processed locallinks in delivery api
* Removed type attribute from expected output regarding locallink parsing
* Cleanup
* Fixed spacing bug
* Added 2 more edge test cases
---------
Co-authored-by: Elitsa <elm@umbraco.dk>
* chore: remove the `user-defined.css` asset from the RCL
You cannot overwrite an asset in an RCL just like that, as the user-defined.css were intended.
* delete actual file
* fix: move usernameIsEmail from the current user to the user configuration since it is a static variable not only relevant to the current user
* update OpenApi.json
* update OpenApi.json
* update OpenApi.json
* Added Content tests with checkbox list
* Bumped version of test helper
* Make the Content tests run in the pipeline
* Moved goToBackOffice to beforeEach
* Removed the unnecessary file
* Moved goToBackOffice to beforeEach
* Make smoke test run in the pipeline
* Support new localLink format in core link parsing
* Updated devliery api to work with the new locallinks format
Added tests for old and new format handling.
* Fix error regarding type attribute not always being present (for example old format or non local links)
* Create seperate Create and Update in ContentTypeServiceBase
* Fix up notification for update
---------
Co-authored-by: nikolajlauridsen <nikolajlauridsen@protonmail.ch>
* separate backoffice install into its own template
* add new job to build the backoffice npm package
* move location of templates
* set version, then build, then pack
* use nbgv to get just the NpmPackageVersion
* calculate version earlier and for both builds
* merge two tasks
* add Build keyword to the display name
* get the node version from the backoffice
* update backoffice submodule
* bump npm version before restoring cache to ensure the cache key doesn't change
* add template to umbraco.sln
* Update integration test base class to verify that calls to ServiceDescriptor.ImplementationType are guarded for keyed services
* Fix unguarded calls to ServiceDescriptor.ImplementationType for keyed services
* Do not rely on claims to figure out user access + prepare for claims removal
* Fix typos :)
* Ensure we fire all relevant notifications when creating and updating user groups
* Leave it to the cache refreshers to flush user cache data (start nodes)
* Added tests for users
* Additional tests
* Found additional test scenarios
* File select
* Fixed tests
* Cleaned up user tests
* Bumped versions of helpers and builder
* Updated naming of method
* More updates
* Added more tests
* Fixed tests
* Fixed skipped tests
* Final touches
* Bumped
* Run userTests
* Fixes made based on review
* Updated so we run our smoketest again
* Added unhappy path tests for MemberGroup
* Added unhappy path tests for Member
* Bumped version of test helpers
* Added smoke tag to make all the tests running in the pipeline
* Update tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Members/Members.spec.ts
* Removed smoke tags before merging
---------
Co-authored-by: Andreas Zerbst <73799582+andr317c@users.noreply.github.com>
* Added tests for Document blueprints
* Fixed the failing tests for Partial View
* Updated tests for Document Blueprints
* Fixed the delete document blueprints tests
* Fixed method name due to the test helpers changes
* Fix arrange steps
* Bumped version of test helpers
* Removed 's' in the file name
* Removed the step to reload tree
* Fixed comments
* Removed test.describe before merging
* Add missing mapping for ActionParameters
* Remove -ActionParameters as that is now mapped
* Update OpenApi.json
---------
Co-authored-by: Elitsa <elm@umbraco.dk>
* Added tests for Multi URL Picker
* Added tests for Multiple Media Picker
* Added tests for RichTextEditor - not done
* Added tests for Richtext Editor
* Added tests for Content Picker
* Added tests for Tags
* Fixed the tests for Approved Color
* Added tests for Checkbox list
* Fixed tests for DataTypeFolder
* Fixed tests for DatePicker due to api changes
* Added tests for Dropdown
* Fixed tests for ImageCropper due to ui changes
* Added tests for List View
* Added tests for Multiple Media Picker
* Added tests for RichTextEditor
* Added tests for Radiobox
* Added tests for True false
* Added tests for Upload
* Bumped version of test helper
* Bumped version
* Fixed code format
* 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
* Added and removed skip tests
* Fixed and added missing tests
* Changed name of test file for Media Picker, Image Media Picker, Multiple Media Picker and Multiple Image Media Picker
* Updated and added missing tests for Data Types
* Bumped version of test helper
* Changed configuration of smokeTest to make all DataType tests run in the pipeline. It should remove before merging
* Added skip for all tests of Numeric as there is no configuration now
* Removed test.describle
* Change syntax of smoke tag
* Removed duplicate code
* Added the tests that avoid the minimum value is greater than the maximum value
* Added the tests that avoid the min height value is greater than the max height value
* Added test for adding available block to RTE
* Remove skip and add more tests
* Added tests for create an empty data type
* Fixed the create data type tests
* Added tests for changing setting a data type
* Updated the test for creating a new data type
* Added skip tests due to UI changes
* Skipped unhappy tests as the front-end is not ready
* Changed the way to create a new stylesheet
* Updated method names due to test helpers changes
* Bumped version of test helper
* Updated expected result
* Updated method name due to UI changes
* Bumped version of test helper
* Bumped version of test helper
* Fixed add start node tests
* Added skip tests
* Updated the expected result
* Fixed add layout tests
* Added more waits
* Add skip tests
* Removed , in the objects and renamed some tests
* Added tests for updating the option
* Fixed naming and removed unnecessary commas
* Update tests/Umbraco.Tests.AcceptanceTest/package.json
Co-authored-by: Andreas Zerbst <73799582+andr317c@users.noreply.github.com>
---------
Co-authored-by: Andreas Zerbst <andr317c@live.dk>
Co-authored-by: Andreas Zerbst <73799582+andr317c@users.noreply.github.com>
* Updated tests for Member Group - not done
* Added api tests for Member
* Added api tests for Member Group
* Added ui tests for Members
* Added ui tests for Member Group
* Added tests for Member Type
* Added code to block unnecessary resources
* Updated createFolder
* Bumped version of test helper
* Changed clickCreateButton to clickCreateLink due to UI changes
* Bumped version of json builder
* Reversed previous code
* Removed waitForTimeout
* Removed waitForTimeout after login
* Bumped version of json builder
* Changed delete folder method
* Bumped version of test helper
* Update create link
* Removed waitForTimeout
* Added skip tests since currently only can view relations
* Added more explicit wait
* Removed hard wait
* Removed invalid verification step due to paging
* Moved get set telemetry level from test to before/after test
* Bumped version of test helper
* Added smoke tags - not done
* Added smoke tags
* Changed locator due to Ui changes
* Changed update to rename method due to test helpers change
* Bumped version of test helpers
* Removed tests for MemberType
* Fixed merge conflict
* Added code to run smoke E2E tests after each build instead of full E2E tests
* Updated command to run smoke test
* Added more smoke tag
* Added smoke tags
* Updated the syntax of smoke tag
* Added smoke tag to make all tests run in the pipeline
* Bumped version of test helper
* Fixed comment
* Removed unnecessary lines
* Removed test.describle
* Include umbraco-package.json manifests in package telemetry and add ID
* Add package ID to ManifestResponseModel
* Use async service method and HTTP client factory
* Avoid breaking changes
* Added api tests for Document - not done
* Added ui tests for Content - not done
* Added api test for Documents
* Added ui tests for Content
* Updated method name due to ui changes
* Bumped version of test helpers and json builders
* Added smoke tag to run all Content tests in the pipeline
* Bumped version of json builder
* Revert files
* Updated the syntax of smoke tag
* Added tests for content with different property editors
* Added tests for Info Tab
* Added more steps for before tests
* Added more tests for Redirect Management
* Added more tests for Content
* Bumped version of test helper
* Changed test name
* Updated the method name due to the test helper changes
* Fixed typo
* Added more waits and skip tests
* Updated the test name
* Changed click action for save button
* Bumped version of test helper
* Bumped version of test helper
* Updated choose document type step after clicking create button due to UI changes
* Added skip tests
* Changed clean method
* Fixed arrange step
* Fixed the arrange steps
* Removed test.describe and unnecessary variables
* Added smoke tests
* Made previewhubupdater work with full cache refreshes
* Make signout_Async available on coreSignInManager
* Allow Migrations to signout the logged in user
* Adding a guid to a user requires resignin
* Added a token revoke mechanism during migrations
* Revert "Make signout_Async available on coreSignInManager"
This reverts commit b103cf119a.
* Revert add allRefreshed on preview hub
Clarified with a comment
* Updated failing test setups
---------
Co-authored-by: Sven Geusens <sge@umbraco.dk>
* Added tests
* Added the rest of the tests
* Few changes to failing test
* Added tests for folders
* More cleanup
* Updates
* Fixed tests
* More documentType fixes
* Fixed test
* Cleaned up
* Cleaned
* Bumped version of testHelpers
* Added @smoke in the define to test all our tests
* Updated version
* Added smoke tags
* Remove reload
* Added clean
* Updates from comments, not done
* Added smoke tag
* Uncommented test.describe
* Bumped version
* Added semicolon
* Split documentType tests into more files
* Bumped version
* Removed test describe and fixed indentation
* Added mediaType and mediaTypeFolder
* Added more tests
* More tests!
* Even more tests
* More fixes
* Clean up
* Added smoke tags
* Bumped version
* Added wait after clicking login
* Added remaining tests
* Bumped version of testHelpers
* Skipped failing test
* Fixed to comments
* Fixed comments and added missing test
* Bumped version
* Split mediaType tests into different files
* Removed test.describe and fixed indentation
this field will be automatically focused when the user sees the login screen, and it should be valid according to a11y best practices as this is the first and main element on the page
fixes#16276
* Updates JSON schema for Umbraco 10 with latest references for Forms and Deploy (#15918)
* Ported over #15928 changes for 13.3 RC (#16023)
* Ported over #15928 changes for 13.3 RC
* Use GetOrAdd()
* Lock dictionary initialization
---------
Co-authored-by: Jason Elkin <jasonelkin86@gmail.com>
* Make the API content response builder extendable (#16056)
* Make the API content response builder extendable
* DeliveryApiJsonTypeResolver needs to be extendable too
* bump rc to regular
* Bump to next minor
* Add blocks in RTE telemetry (#16104)
* Add blocks telemetry
* Use constants and update tests
* V13: Add property type information to telemetry (#16109)
* Add property type counts to telemetry
* Use constants and fix tests
* Update description
* V10: Fix for fallback file upload (#14892) (#15868)
* Fix for fallback file upload (#14892)
* Added check for file type
* Removed unneeded null checks and fixed tabs
* Cleaning
* Cleanups, cleanups, and removal of unneeded null checks
* Reverted removal of relationshipservice
* Revert null check removals (too risky)
---------
Co-authored-by: Ambert van Unen <AvanUnen@ilionx.com>
Co-authored-by: Laura Neto <12862535+lauraneto@users.noreply.github.com>
(cherry picked from commit 0b5d1f8aa6)
* Fix up formatting
---------
Co-authored-by: Ambert van Unen <ambertvu@gmail.com>
* Implementors using Umbraco.Tests.Integration won't have to override GetLocalizedTextService
(cherry picked from commit b0016687eb)
(cherry picked from commit 2bb56f1b81)
* Fix logic for retrieving lastKnownElement
(cherry picked from commit cae106bfe8)
* bump version
* Bump version
* Bump version
* Since v13 properties can sometimes be of type IRichTextEditorIntermediateValue - this was unexpected in the XPath navigator code (#16121)
* Webhook log improvements (#16200)
* fix: include all headers in webhook log
* feat: return webhook log status from server
* feat: make webhook logs deep linkable
* feat: add webhook log pagination
* feat: improve webhook request/response body preview
* V13: Optimize custom MVC routing (#16218)
* Introduce EagerMatcherPolicy to conditionally bypass content routing
* Ensure that the candidate we disable dynamic routing for is valid
* Skip Umbraco endpoints
* Simplify logic a bit
* Move install logic to matcher
* Ensure that dynamic routing is still skipped when in upgrade state
* Fixup comments
* Reduce nesting a bit
* Don't show maintenance page when statically routed controllers are hít
* Remove excess check, since installer requests are statically routed
* V13: Optimize custom MVC routing (#16218)
* Introduce EagerMatcherPolicy to conditionally bypass content routing
* Ensure that the candidate we disable dynamic routing for is valid
* Skip Umbraco endpoints
* Simplify logic a bit
* Move install logic to matcher
* Ensure that dynamic routing is still skipped when in upgrade state
* Fixup comments
* Reduce nesting a bit
* Don't show maintenance page when statically routed controllers are hít
* Remove excess check, since installer requests are statically routed
(cherry picked from commit ba9ddd11da)
* Property source level variation should only be applied when configured (#16270)
* Property source level variation should only be applied when configured (#16270)
(cherry picked from commit ab32bac5d9)
* Merge pull request from GHSA-j74q-mv2c-rxmp
* Merge pull request from GHSA-j74q-mv2c-rxmp
* Merge pull request from GHSA-j74q-mv2c-rxmp
* Fix up after merge
* Remove obselete test
---------
Co-authored-by: Andy Butland <abutland73@gmail.com>
Co-authored-by: Kenn Jacobsen <kja@umbraco.dk>
Co-authored-by: Jason Elkin <jasonelkin86@gmail.com>
Co-authored-by: Sven Geusens <sge@umbraco.dk>
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
Co-authored-by: Ambert van Unen <ambertvu@gmail.com>
Co-authored-by: Lars-Erik <lars-erik@aabech.no>
Co-authored-by: Joshua Daniel Pratt Nielsen <jdpnielsen@gmail.com>
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
Co-authored-by: Sebastiaan Janssen <sebastiaan@umbraco.com>
Co-authored-by: Rasmus John Pedersen <mail@rjp.dk>
* Refactor permissions
* Fix user startnode caching
* Relax permissions on user item endpoint
* Refactor media types to align with newly refactored content permissions
* Remove permissions from member type item endpoint
* Adds `preview.js`
to replace the legacy `umbraco.websitepreview.min.js` script.
Updates the content's `Id` with `Key`.
* allow any protected route to render the backoffice
* optimise component so it doesn't need to observe its attributes and use the popover API to show it on top of the content
* handle case where the culture could be set to "invariant" - we just want to set the "lang" attribute to the default ui language
* convert 'end preview' into an api request and reset the style of the button
* minimize function
* move static text into constants
---------
Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
* AB40660 - untangle the preview cookie from the auth cookie
* Clean up
* Allow anonymous to end preview sessions
* Some refinements
* update OpenApi.json
* Fix enter preview test
* correct tests to match new expectations of the preview cookie
* sync preview tests with correct expectations of access level
---------
Co-authored-by: Sven Geusens <sge@umbraco.dk>
Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
* Working import/export media/document types
* WIP
* Refactoring of import doctype/media types
- added analyze endpoint to extract relevant data without fully processing the file
- split up import endpoints into POST & PUT
- removed availableAtAction as the new endpoint allows clients to call the POST/PUT endpoints with confidence
- Added a new service that is responsible for turning temp files into Import compatible XML and being able to extracty partial information from it
* Wrap persistance access in scopes
* Typos, formatting, clean-up
* PR feedback
* update openapi spec
* Changed deleteFile flag to _temporaryFileService.EnlistDeleteIfScopeCompletes
* Itty bitty typo
* Moved magic cleanup into its own method so orchestration can decide when.
---------
Co-authored-by: Sven Geusens <sge@umbraco.dk>
Co-authored-by: kjac <kja@umbraco.dk>
* Sends GUID instead of the numeric ID for SignalR Preview Hub
* Add possibility to set cookies as HttpOnly
* Set UMB_PREVIEW cookie as HttpOnly
* fixup! Add possibility to set cookies as HttpOnly
* Refactor ContentFinderByIdPath to more readable
* Create ContentFinderByKeyPath reusing logic from ContentFinderByIdPath
* Add a comment to DisableFindContentByIdPath setting
* Append new content finder
* Change ordering of content finders registrations
* Refactor with a base class
* Update/refactor and add tests regarding ContentFindersByIdentifier
* Fix comment
* Avoiding breaking change
* Make usages use non-obsolete implementation
* Fixed todo in config instead of use the one old legacy name even more. Also obsoleted the ContentFinderByIdPath
* add `preview` as an allowed backoffice client route
---------
Co-authored-by: Sven Geusens <sge@umbraco.dk>
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
* Refactor user group endpoints to use reference by id models instead
* Update user endpoints to use reference by id models
* Update usergroup ids to ReferenceByIdModel
* Added endpoint and backing service for backoffice login providers and the status per user.
* Improve link login redirect forming and error handling
* Add responseModel and mapping instead of returning core model
* Moved unlink endpoint logic into a service
* Refactored ExternalLinkLoginCallback logic into BackofficeExternalLoginService method
* typo and minor code style improvements
* async method name alignment
* Add BackOfficeExternalLoginService tests
* Remove helper method that makes less sense that thought.
* Minor formatting, clean-up and conventions
* Replaced cookie authentication in link-login with a short lived secret
Applied PR feedback
* Update openapi
* Changed link login to a form endpoint
* fix broken comment link
* Do not store claimsprinciple in secret + comments
* update redirect paths
---------
Co-authored-by: Sven Geusens <sge@umbraco.dk>
Co-authored-by: kjac <kja@umbraco.dk>
Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
* Improve getting and initializing new block value layouts
* Remove unnecessary generic type constraints
* Add and use new block value/layout item constructors in tests
* Removed GetLayouts that did not make sense
* Added constructor to BlockItemData to simplify explicit usages
---------
Co-authored-by: kjac <kja@umbraco.dk>
* Changed name from Dictionary to Translation
* Removed old Dictionary
* Adding missing tests for Dictionary
* Added smoke tag to test
* Bumped version of test helper
* Add comments
* Fixed comments
* Removed smoke tag
* handle 403 and unknown error codes from the server
* resolve 2fa errors in repository
error handling was never being activated because this specific endpoint did not return api errors as it works exactly like the "authorize" endpoint, which is being called directly
* chore: add obsolete message to unused `SetupViewPath`
* chore: remove unused events
* add missing labels
* fix: send only 'error' back if the response is not ok
* chore: remove duplicate error handling for 500 errors
* fix: add hack to allow to submit the form on enter click
* 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>
* Revert "v14: Remove mentions of UmbracoApiController (#15863)"
This reverts commit 30e2dea57a.
* Obsolete UmbracoApiController
* Added a few more obsoletion messages
* Removed some of the reintroduced stuff again
* Add obsoletion to FrontEndRoutes controller
---------
Co-authored-by: kjac <kja@umbraco.dk>
* Return all data types from GetAllAsync
* Remove unnecessary async/awaits
* Ensure we don't accidentally fetch all data types when we mean to fetch none.
---------
Co-authored-by: kjac <kja@umbraco.dk>
* Use Attempt<string> result to display the unhealthy error message
* Update OpenApi.json
* Code readability improvements
* Add unittest covering the bug
---------
Co-authored-by: Sven Geusens <sge@umbraco.dk>
* bump from es2020 to es2022 for better javascript support
* remove the hardcoded "paths" in tsconfig and replace with the backoffice package
* import uui-css to have styling on the dev server
* change endpoint mock url
* cleanup unused code
* Move audit log endpoints to their respective silos and clean up
* Fix failing integration tests
* Using DateTimeOffset in management api and new methods in service layer
---------
Co-authored-by: kjac <kja@umbraco.dk>
* Fixed failing tests
* Updated tests to use the updated helpers
* Clean up tests
* Enabled our pipeline for E2E testing
* Updated the CMS URl for our E2E tests
* Bumped version of our testHelpers
* Did some fixing, still a bit more to do
* Updated auth tests to use LoginUiHelper
* Updated Telemetry tests to use TelemetryUiHelper
* Updated LogViewer tests to use LogViewerUiHelper
* Updated api tests to apply AAA pattern and fix failed tests
* Removed unused import
* Updated api tests for Language
* Added ui tests for Language
* Updated ui test of Language as test helper is changed
* Bumped version of test helper
* Updated create language tests
* Updated delete language test
* Added Language folder
* Fixed method name
* Bumped version of test helper
* Fix merge conflict
* Fixed typo
* Added more waits
* Fixed locator
* Updated locator
* Added timeout
* Fixed password
* Reversed file
* Bumped version
* Bumped version of test helper
* Added more waits
* Added skip for add language test
* Bumped version of test helper
* Added smoke tags
* Fix conflict
* Added @smoke tag to test all Language tests in the pipeline
* Fixed comment
* Removed smoke tag in describe
---------
Co-authored-by: Andreas Zerbst <andr317c@live.dk>
* Added missing alias and Id to usergroup models
create/update/response/item
* Changed userGroup IsSystemGroup to more meaningfull fields
Also enforced the AliasCanBeChanged businessrule 🙈
---------
Co-authored-by: Sven Geusens <sge@umbraco.dk>
Co-authored-by: Mads Rasmussen <madsr@hey.com>
* Amend user start node handling
* Add "has root access" to current user endpoint
* Add document and media root access to user response model
* Update OpenApi.json
* Applied API suggestions
---------
Co-authored-by: Sven Geusens <sge@umbraco.dk>
* set the default for `AuthorizeCallbackPathName` to "/umbraco/oauth_complete" to allow the server to redirect the user back to a route where we don't load the entire backoffice.
* remove redundant method
* Added code to block unnecessary resources
* Updated createFolder
* Bumped version of test helper
* Changed clickCreateButton to clickCreateLink due to UI changes
* Bumped version of json builder
* Reversed previous code
* Removed waitForTimeout
* Removed waitForTimeout after login
* Bumped version of json builder
* Changed delete folder method
* Bumped version of test helper
* Update create link
* Removed waitForTimeout
* Added skip tests since currently only can view relations
* Added more explicit wait
* Removed hard wait
* Removed invalid verification step due to paging
* Moved get set telemetry level from test to before/after test
* Bumped version of test helper
* Added smoke tags - not done
* Added smoke tags
* Fixed merge conflict
* Added code to run smoke E2E tests after each build instead of full E2E tests
* Updated command to run smoke test
* Added more smoke tag
* Added reload tree steps
* Bumped version
* Removed hard waits
* Reduced wait time
* Reversed hard waits
* Set up full test suite in nightly build
* Fixed conditions
* Changed config
* Fix operation status msg
* Cleanup
* Removing unused status
* Adding WithConfigurationEditor on DataEditorBuilder to be able to create new list views with custom configuration
* Adding list view service tests for content and media
* Adding list view service tests base
* Consistency
* Clean up
* More cleanup
---------
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Add endpoint for retrieving allowed media types for file extensions
* Moved paging into service
---------
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Added code to block unnecessary resources
* Updated createFolder
* Bumped version of test helper
* Changed clickCreateButton to clickCreateLink due to UI changes
* Bumped version of json builder
* Reversed previous code
* Removed waitForTimeout
* Removed waitForTimeout after login
* Bumped version of json builder
* Changed delete folder method
* Bumped version of test helper
* Update create link
* Removed waitForTimeout
* Added skip tests since currently only can view relations
* Added more explicit wait
* Removed hard wait
* Removed invalid verification step due to paging
* Moved get set telemetry level from test to before/after test
* Bumped version of test helper
* Added smoke tags - not done
* Added smoke tags
* Fixed merge conflict
* Added code to run smoke E2E tests after each build instead of full E2E tests
* Updated command to run smoke test
* Added more smoke tag
* Added reload tree steps
* Bumped version
* Removed hard waits
* Reduced wait time
* Reversed hard waits
* Set up full test suite in nightly build
* Fixed conditions
* Changed config
* Added more waits
* Reversed yaml file
* Reversed yaml files
* Reversed YAML files
* Added .skip for failing tests due to RTE
* This fix ensures the claims added doing OnExternalLogin is persisted in the OpenIddict tokens
* Update comment
* Tiniest bit of formatting
---------
Co-authored-by: kjac <kja@umbraco.dk>
* Added media tests
* Bumped versions
* Bumped version of testhelpers
* Cleaned up
* Added additional media tests
* Bumped version of playwright and testHelpers
* add option to SecuritySettings.cs to allow the developer to set an authorized logout callback path in line with the login callback path
* allow clients using the "Umbraco back-office access" descriptor to return back to either the login path or the logout path
* Cache user by id
* Add todo
* Fix tests
* Clear cache after update
* Refer to base class cache instead of implementing own
* Dont hardcode cache key
* Update to be Payload cache refresher instead
* Migrate nofication chars to strings
* Add a length to the UserGroup2PermissionDto.Permission
* Remove StripWhitespace
It was only nececary when it was nchar
* Better name for migration
* Reuse dictionary in migrations
---------
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Renamed the language item controllers to follow the current standard (they should not be called "entity")
* Renamed the webhook item controllers to follow the current standard (they should not be called "entity")
* Moved the webhook item controllers to the "/item" silo
* Renamed the user gorup controller base to be singular instead of plural
* Create member group endpoint should yield a 201 created response
* Update member endpoint should yield an empty 200 OK upon success
* Update UpdateUserDataController with correct action name and return an empty 200 OK upon success
* More item endpoints alignment
---------
Co-authored-by: Elitsa <elm@umbraco.dk>
* 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>
* Consider max login lifetime with access and refresh tokens
* Adding clarification comment
* Updated comment and added a little explanation for future clarity
---------
Co-authored-by: kjac <kja@umbraco.dk>
* Added mostly working linking methods to the backoffice controller
Cleanup still required
* Added proposed default error handling extionsion methods
* Cleanup, clarification and PR feedback
* More cleanup
* Transformed the OAuthOptionsExtensions into a helper class
this allows for proper DI for the dependencies
---------
Co-authored-by: Sven Geusens <sge@umbraco.dk>
* 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
* Adding ISchemaIdHandler and core implementation enabling custom package implementations
* Adding IOperationIdSelector and refactoring core implementation to enable custom package implementations
* Adding OperationIdSelector core implementation enabling custom package
* Removing old way of Operation id extensibility
* Registering schema and operation id handlers
* Refactoring based on unnecessary param
* Obsoletion
* Refactoring SchemaIdSelector to make use of the new ISchemaIdHandler
* Update OpenApi.json
* Revert "Update OpenApi.json"
This reverts commit c9165f174b.
---------
Co-authored-by: kjac <kja@umbraco.dk>
* 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
* update the login image to the v14 variant
* switch out the default value of the "alternative" logo to the dark version since it fits better in this version
* Add async method to IContextCache
* Add async methods to IImageSourceParser and ILocalLinkParser
* Add async methods to IDataTypeConfigurationConnector, IServiceConnector and IValueConnector
* Obsolete non-aysnc methods
* Add cancellation tokens to new async methods
* Add ConfigureAwait(false) to awaits
* Use require modifier instead of setting null-suppressed default values
* Only remove read-only properties when IgnoreReadOnlyProperties is set
* Obsolete UmbracoPath property and remove work-around for obsolete setter
* Only add a SQL in statement if there are keys to filter on
* Improved faulty query fix by calling a cached path.
---------
Co-authored-by: Sven Geusens <sge@umbraco.dk>
* 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>
* Ensure APIS only can produce one response type
* Ensure APIs document Unauthorized and Forbidden results
* If a controller constructor injects IAuthorizationService we assume the actions can return forbidden
* Updated OpenApi.json
* OpenApi.json
* Update OpenApi.json
* Update OpenApi.json
* Added a simpel circular reference check to templates
* Upgraded detecting to all levels
* Rename method and add comment to clarify why we have 2 similar methods
* Apply suggestions from code review
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
---------
Co-authored-by: Sven Geusens <sge@umbraco.dk>
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* First go at the document url controller
Added optimizations for documenturlFactory
* Updated Document Url endpoint
Duplicated the endpoint for media
Cleaned up some code marked async that will never hit a long running operation
* Remove dupplicate attributes
* Rename resource sets to response model
---------
Co-authored-by: Sven Geusens <sge@umbraco.dk>
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* 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>
* Added UserData and migrated tours data into it
* Remove tourdata from user
* Removed tour definition/manipulation classes
Fixed a userData error typo
* Removed toursettings
* Update openapi spec
* V13: Align database schemas of migrated and new database (#15934)
* Drop default constraint umbracoCacheInstruction table
* Align umbracoContentVersion table
* Update indexes on external login table
* Align node table
* Make relation type index unique
* Remove user-group default constraint
* Re-order methods
* Make webhook url not nullable
* Cleanup
* Cleanup
* Update OpenApi.json
* Update src/Umbraco.Cms.Api.Management/Controllers/UserData/UserDataControllerBase.cs
* Remove tour settings from schema
* Add cancelation tokens
* Dont inject, but take as parameter
* Remove some from injection
* Update schema
---------
Co-authored-by: Sven Geusens <sge@umbraco.dk>
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
Co-authored-by: Zeegaan <skrivdetud@gmail.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>
* Moved logic from FolderTreeControllerBase into EntityService and EntityRepository
* Custom sorting for data types, not media types
* Ensure ordering is the same for SQLite and SQLServer
---------
Co-authored-by: kjac <kja@umbraco.dk>
Sets the appropriate MIME type of the Created Package download,
this would be either an XML string or a ZIP file. The MIME type will
be used on the client-side to handle the responds accordingly.
* 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
* Made Relation types read only trough the management api
* Removed path from RelationTypeResponseModel
* Removed RelationTypes tree controllers
* Deleted ByChildRelationController as the usecase has been internalized
* Reworked RelationResponseModel
* Added the ID the toe relation response model
* RelationType.IsDeletable is no longer relevant for the management api
Since types are only managed trough code.
* Removed RelationType create/update leftovers
Brought RelationType responsemodels more in line with similar models
Update openapi spec
* Review improvements
* Renamed controller file to match class name
---------
Co-authored-by: Sven Geusens <sge@umbraco.dk>
Co-authored-by: Mads Rasmussen <madsr@hey.com>
Co-authored-by: kjac <kja@umbraco.dk>
* Moved tracked references under their respective sources
Prepped the endpoints to be more inline with how we will optimize in the future
* Fixed some endpoint signature issues and update openapi spec
* Partial Revert "Moved tracked references under their respective sources"
This reverts the submodule update in commit 3819276a74.
* Fix duplicate line
* Rework for polymorphic output
* Improved endpoint naming
* Regenerate OpenApi.json
---------
Co-authored-by: Sven Geusens <sge@umbraco.dk>
Co-authored-by: kjac <kja@umbraco.dk>
* 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>
* Add reserved fields to documents
* Add member configuration endpoint
* Add reserved field to media configuration
* Refactor to use service instead on hardcoded methods
* Clean up, aligning
* Update OpenApi
---------
Co-authored-by: Elitsa <elm@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
* Added missing locks, and ensure we have timeout on all of them
* Wrap the removable of objects from the hashset in a lock
* remove old comment
* Exit correct lock
* Extend EntitySlim with key
* Add ListView to GenericContentEntityDto and ContentEntitySlim
* Move ContentTypeKey and ListViewKey back to BaseDto
* Remove extra DB call when mapping to DocumentTypeReferenceResponseModel
* Remove extra DB call when mapping to MediaTypeReferenceResponseModel
* Remove duplicate db call for members
* Remove now redundant base class
* Fix comment
* Workaround for failing entity tree children
* Fix typo from original PR
* Expose and actually use GetPagedTrashedChildren on EntityService (the default implementation on the interface is currently used).
* Ensure that ID/Key mapping for recycle bins work
* Update filter to include membergroup name
* add filter by isApproved
* Add isLockedOut
* Implement member filter
* Move filter logic to repository
* Add more fields to sort by
* Update openApi
---------
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* [WIP] Stop Udi leaking on ConterPicker
* Refined Udi conversion for contentPicker
Cleaned up base construcor usage to move away from the obsoleted one.
* Fixed Udi lieaking in MNTP
* Stopped Udi bleeding for MultiUrlPicker
* Remove unused assignment
* Resolved namespace issue
* Use correct configuration value for MNTP udi parsing
* Turn helper auto props into local helper function to avoid unnecesary serialization
* Remove Newtonsoft.Json from Multi URL picker
* Fixed MNTP configuration serialization
* Changed MNTP editor data from csv guid to EditorEntityReference[]
* Added remarks for the MNTP editor conversion logic
* Reworked MNTPPropertyEditor Unittests
changed intent of one
fixed bug because of 1 rework
* Update OpenApi.json
---------
Co-authored-by: Sven Geusens <sge@umbraco.dk>
Co-authored-by: Elitsa <elm@umbraco.dk>
Co-authored-by: kjac <kja@umbraco.dk>
* Fix FIXMEs
* Bring AuthorizationPolicies.DenyLocalLoginIfConfigured authz policy to an action level as it doesn't apply to all
* Remove unnecessary policy
* Remove AuthorizationPolicies.DenyLocalLoginIfConfigured from base and apply to specific controllers
* Fix comment
* AllowAnonymous as it doesn't get it from the base anymore
* Reorder
---------
Co-authored-by: Elitsa <elm@umbraco.dk>
* Rename Web.UI.New back to Web.UI
* Delete new backoffiec folder
* Rename client project
* Add new submodule
* Update template csproj
* Remove more mentions of new
* Add missing views
* Moving up the "Umbraco.Web.UI" proj reference, so that it is the first project listed in solution file (.sln) since it will be selected as startup one in VS by default.
* don't include grid
* Update with section of how to get started with backoffice
* Update .github/BUILD.md
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
* Add line about white page
---------
Co-authored-by: Elitsa <elm@umbraco.dk>
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
* Enabled Section authorization on member management endpoints
Changed filter endpoints from tree style auth to section as it returns the same model and be in line with other filter endpoints
* Clean up member filter base inheritance
---------
Co-authored-by: Sven Geusens <sge@umbraco.dk>
Co-authored-by: kjac <kja@umbraco.dk>
* 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
* add checkboxlist to the list of migrations that should be converted
* Adds string-array type-checking
to the `ValueListUniqueValueValidator`.
As `value?.ToString()` would give you a literal string of the
object-type, e.g. `"System.Collections.Generic.List`1[System.String]"`.
* Clean up and add tests
---------
Co-authored-by: leekelleher <leekelleher@gmail.com>
Co-authored-by: kjac <kja@umbraco.dk>
* Applying [ApiController] to ManagementApiControllerBase and the rest derive it from it
* Removing [ApiController] from deriving controllers
* Removing [ApiVersion("1.0")] from controller base
* Cleanup
* [ApiController] from deriving DeliveryApiControllerBase controller
* Removed the "New" from all policy names now that the legacy backoffice is gone.
* more policy renaming
* more policy renaming
* Uncommenting tests
* Cleanup
* Removing unused policy names
* Renaming AdminUserEditsRequireAdmin to a more meaningful UserPermissionByResource
* Completing TODO and some alphabetical rearranging
---------
Co-authored-by: Elitsa <elm@umbraco.dk>
* 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 1dd3167e96.
* 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
* Added tests for Examine Management tab
* Added tests for Heath Check
* Added tests for Models Builder
* Added tests for Profiling
* Added tests for Published Status
* Bumped version
* Added tests for Welcome Dashboard
* Updated test name
* Bumped version of test helper
* Bumped version of test helpers
* Replace " with '
* Fixed comments
* Bumped version of test helper
* 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>
* Added tests for Examine Management tab
* Added tests for Heath Check
* Added tests for Models Builder
* Added tests for Profiling
* Added tests for Published Status
* Bumped version
* Added tests for Welcome Dashboard
* Updated test name
* Bumped version of test helper
* Bumped version of test helpers
* Replace " with '
* 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 beforeEach() and remove .skip for the passed tests
* Fixed failed tests and add the tests to cover query builder
* Bumped version of test helper
* Updated api tests for Partial View as the endpoints are changed
* Fixed failed tests and remove .skip tests
* Updated test helper version and api tests for Partial View as the name of method changes
* Changed createButton() to createThreeDotsButton()
* Bumped version
* Bumped version of test helper
* Fixed comments
* Added more waits
* Splited tests out
* Changed verification method
* Added debug
* Removed console.log() and increased wait time
* Changed expect from toEqual to toBeTruthy
* Changed to use "" instead of ''
* more changes
* Updated the expectedPartialViewContent
* Changes
* Removed
* Fixed test
* Update PartialView.spec.ts
* Removed .skip
* Added code to detect os platform
* Updated expectedPartialViewContent varibale
* Added waits
* Bumped version of test helper
---------
Co-authored-by: Andreas Zerbst <andr317c@live.dk>
Co-authored-by: Andreas Zerbst <73799582+andr317c@users.noreply.github.com>
* 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>
* Do not allow ignoring start nodes for system data types
* Update OpenApi.json
* Update src/Umbraco.Cms.Api.Management/Mapping/DataType/DataTypeViewModelMapDefinition.cs
Co-authored-by: Sven Geusens <geusens@gmail.com>
* Regenerate OpenApi.json
---------
Co-authored-by: Sven Geusens <geusens@gmail.com>
* 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>
* Adding missing members policy
* Adding a member filter endpoint
* Adding response types to user filter endpoint
* Adding create multiple to factory
* Updating OpenApi.json
* Member response model must not have a name (its name is in the variants collection)
* update import map
---------
Co-authored-by: Mads Rasmussen <madsr@hey.com>
Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
* 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>
* 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>
* Updated test to work. And skips tests unable to work until frontend is ready
* Decreased time for tests
* Update playwright.config.ts
Decreased to 40 seconds
* Fixed failing tests
* Updated tests to use the updated helpers
* Clean up tests
* Enabled our pipeline for E2E testing
* Updated the CMS URl for our E2E tests
* Bumped version of our testHelpers
* Did some fixing, still a bit more to do
* Updated auth tests to use LoginUiHelper
* Updated Telemetry tests to use TelemetryUiHelper
* Updated LogViewer tests to use LogViewerUiHelper
* Updated api tests to apply AAA pattern and fix failed tests
* Removed unused import
* Fixed comments
* Bumped version of test helper
* Updated the version to 10 instead of 11
* Updated the package-lock.json file to contain the correct versions
* Added a waitForTimeout
The reason for this is that this test is failing on the pipeline
* V14 Added acceptance test for basic functions of Data Type, Approved Color and Label (#15551)
* Updated api tests for DataType
* Added ui tests for basic functions of DataType
* Added ui tests for Approved color
* Added ui tests for Label
* Fixed comments
* V14 Added acceptance tests for Date Picker (#15561)
* Updated api tests for DataType
* Added ui tests for basic functions of DataType
* Added ui tests for Approved color
* Added ui tests for Label
* Added ui tests for Date Picker
* Removed blank line
Co-authored-by: Andreas Zerbst <73799582+andr317c@users.noreply.github.com>
---------
Co-authored-by: Andreas Zerbst <73799582+andr317c@users.noreply.github.com>
* V14 Added acceptance test for List View (#15575)
* Updated api tests for DataType
* Added ui tests for basic functions of DataType
* Added ui tests for Approved color
* Added ui tests for Label
* Added ui tests for Date Picker
* Fix merged
* Updated DatePicker and Label tests to apply best practices
* Added ui tests for ListView
* V14 Added acceptance tests for Image Cropper, Numeric and Radiobox (#15599)
* Added ui tests for ImageCropper
* Added ui tests for Numeric
* Added ui tests for Radiobox
* Updated tests for Approved Color to change the way to arrange test data
* Change "" to '' and updated before/after methods
* V14 Added acceptance test for Textarea, Textstring, Upload (#15606)
* Added ui tests for Textarea
* Added ui tests for Textstring
* Added ui tests for Upload Article, Upload Audio, Upload File, Upload Vector Graphics, Upload Video
* Fixed failing tests due to api changes
* Changed propertyEditorAlias to editorAlias due to api changes
* Removed the step to check notification displays and changed string variables to numeric variables due to api changes
* Updated the skip tests
* Added skip tests and update method name due to test helper changes
* Splited tests out
* Bumped version
* Changed '' to '
---------
Co-authored-by: Andreas Zerbst <andr317c@live.dk>
Co-authored-by: Andreas Zerbst <73799582+andr317c@users.noreply.github.com>
* 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>
* Re-modelling API models (take two)
* Do not use "content" - use "document" and "media" instead.
* Move "item" endpoints to their own silo
* Use "Id", not "Key"
* Regenerate OpenApi.json
* Rename user start node IDs from "content" to "document"
* Regererate OpenApi.json after forward merge
* update importmap
---------
Co-authored-by: Mads Rasmussen <madsr@hey.com>
* Adding revoke user auth token handler and registering it
* Maintain method clarity by grouping new calls into its own method
* Rename functions to what they do
* Suggested linq function of tripple nesting
* Reduce nesting by early loop continuation
* Fix PR suggestion async typo
* Review suggestions
* Log msg alignment between members and users
---------
Co-authored-by: Sven Geusens <sge@umbraco.dk>
* Members and member types in the Management API
* Add validation endpoints for members
* Include validation result in service response + add unit tests
* Regenerate OpenApi.json
* Regenerate OpenApi.json after merge
* Don't throw an exception when trying to set valid variation levels for member types
* Added missing ProducesResponseType
* Remove TODO, as that works
* Allow creation of member with explicit key
* Do not feature "parent" for member creation + add missing response type
* Do not feature a "Folder" in create member type (folders are not supported)
* Added missing build methods
* Fixed issue with mapping
---------
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Fixed failing tests
* Updated tests to use the updated helpers
* Clean up tests
* Enabled our pipeline for E2E testing
* Updated the CMS URl for our E2E tests
* Bumped version of our testHelpers
* Did some fixing, still a bit more to do
* Updated auth tests to use LoginUiHelper
* Updated Telemetry tests to use TelemetryUiHelper
* Updated LogViewer tests to use LogViewerUiHelper
* Updated api tests to apply AAA pattern and fix failed tests
* Removed unused import
* Added api tests for RelationType
* Added ui tests for Relation Type
* Bumped test helper version
* Added api tests for Relation Types
* Updated ui tests for Relation types
* Updated method due to the test helper changes
* Bumped version
* Fixed merged
* Update tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Relation Types/RelationTypes.spec.ts
Added ;
Co-authored-by: Andreas Zerbst <73799582+andr317c@users.noreply.github.com>
* Update tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Relation Types/RelationTypes.spec.ts
Updated name of method
Co-authored-by: Andreas Zerbst <73799582+andr317c@users.noreply.github.com>
* Update tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/Relation Types/RelationTypes.spec.ts
Updated name of method
Co-authored-by: Andreas Zerbst <73799582+andr317c@users.noreply.github.com>
---------
Co-authored-by: Andreas Zerbst <andr317c@live.dk>
Co-authored-by: Andreas Zerbst <73799582+andr317c@users.noreply.github.com>
* Clean up ContentControllerBase and move document related operations to DocumentControllerBase
* Rename content to document
---------
Co-authored-by: Elitsa <elm@umbraco.dk>
* Don't add published infos if not published
* Unpublish all cultures as a whole
* Added tests
---------
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Property level validation for content - initial implementation
* Always succeed create/update regardless of property level validation errors
* Move old complex editor validation classes to Web.BackOffice so they will be deleted
* Include operation status and property validation errors in ProblemDetails
* Refactor property validation to its own service(s)
* Make the problem details builder a little more generic towards extensions
* Validation for item and branch publish
* Moved malplaced test
* Get rid of a TODO
* Integration tests for content validation service
* Simplify validation service
* Add missing response types to create and update for document and media
* Remove test that no longer applies
* Use "errors" for model validation errors (property validation errors)
* Split create/update and validation into their own endpoints
* Fix forward merge
* Correct wrong assumption for missing properties
* Remove localization from validation error messages - decreases dependencies, adds a lot of obsolete constructors
* Reuse existing validation service + support custom error messages
* Fix merge errors
* Review comments
* Rename InstallVResponseModel to InstallRequestModel
* Align SettingsInstallController
* Rename split DatabaseInstallResponseModel in two
* Change UserInstallResponseModel to UserInstallViewModel
* Use PresentationModel instead of ViewModel
* Use operation status pattern when validating database
* Prepare for install to return a message
* Begin updating steps
* Make StepBase sharable between upgrade and install
* Update steps
* Use error message from install steps in install controller
* Use error message from upgrade steps in upgrade controller
* Use 500 for install/upgrade failed
It's entirely likely that it has nothing to do with the request
* Updated OpenApi.Json
---------
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* First take at new models for improved mapping between client and server
* Add variants to Media
* Re-introduced lost names
* Start breaking apart "Id" reference properties in request models as well
* Refactor to fix OpenAPI spec
* Discard TODO (not relevant)
* Split recycle bin response models
* Delete unused marker interface
* Use reference properties for content and media type handling
* Rework document and media types to be explicit in relations (do not expose "content type", it is an implementation detail)
* Mapping for document and media type copy + move
* Ensure correct response model for Media
* Regenerate OpenAPI JSON after forward merge
* Fix forward merge issues
* Fix forward merge + regenerate OpenApi.json
* Added unit tests for content state helper
* Move "allowed document types" endpoint to document type silo, refactored services and added "allowed media types"
* Regenerate OpenApi.json after forward merge
* Do not include content state for media items
* Review fix
* Updated naming to route correctly
* Added a check for null
* Added another status code for the PublicAccess
* Added a check for null
* Updated naming to match route
* Added attempt pattern
* added a ProblemDetailsBuilder for the EntryNotFound
---------
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* In progress tests
* Updated createdPackaged tests
* Added test for checking if we are able to see the marketplace
* Added tests for checking if the correct message is shown
* Made quite a lot of changes, used the locators in the testHelpers. Added additional tests
* Updated to match changes to the Ui TestHelpers
* Fixed test
* added package file
* Bumped versions
* Updated naming
* Fixed Acceptance Test to match patterns
* Updated locator in test.
* Added Act comment
* Followed comments from PR
* Added 2FA management endpoints
* Ensure not found do not lead to forbidden results
* Do not inherit the requirement to have access to users, from the current user base class
* Updated OpenApi.json
* Handle 2FA in login scenario (only backend)
* Added the endpoint to use for client to post 2FA code
* Fixed tests and allow injecting the authentication type settings
* fix test build
* Fallback to use Constants.Security.BackOfficeAuthenticationType
* remove unused variable
* Review fixes
* Build fix
* Update src/Umbraco.Cms.Api.Management/Controllers/User/Current/DisableTwoFactorProviderCurrentUserController.cs
Co-authored-by: Sven Geusens <geusens@gmail.com>
* Handle case where 2fa provider is already setup
---------
Co-authored-by: Sven Geusens <geusens@gmail.com>
* Bumped version of TestHelper
* Added .udt test files
* Updated api tests for Dictionary
* Added ui tests for Dictionary
* Updated ui tets for Dictionary as TestHelper is changed
* Updated ui tests of Dictionary
* Updated verify step
* Fixed comments
* Imported crypto into Dictionary.spec.ts
Co-authored-by: Andreas Zerbst <73799582+andr317c@users.noreply.github.com>
* Fixed format
---------
Co-authored-by: Andreas Zerbst <73799582+andr317c@users.noreply.github.com>
* Implemented culture based authorization for content
* Implemented culture auth for create/update of documents
* Applied culture authorization to dictionary create/update
* Added an integration test to test an assumption about the ContentTypeEditingService.CreateAsync method
* Fix processing when result is already false;
* Apply suggestions from code review
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* Refactor method to async + clarify and consilidate comments regarding dictionary locks
---------
Co-authored-by: Sven Geusens <sge@umbraco.dk>
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* First stab at a massive remake of file system based endpoints
* Do not prefix system paths with directory separator char
* Ensure correct and consistent response types
* Fix partial view snippets endpoints
* Clean up IO (path) operations
* Update OpenAPI JSON to match new endpoints
* Return 201 when renaming file system resources
* Add "IsFolder" to file system item endpoints
* Replace "parentPath" with a "parent" object for file system creation endpoints
* Update OpenAPI JSON
* Rewrite snippets
* Regenerate OpenAPI JSON after forward merge
* Remove stylesheet overview endpoint
* Regenerate OpenAPI JSON after forward merge
* add server-file-system module to importmap
* Expose generated resource identifier in 201 responses
---------
Co-authored-by: Mads Rasmussen <madsr@hey.com>
* Adding response/request models
* Adding mapping
* Adding factory
* Adding controllers
* Moved to correct (generic domain) namespace
* Renamed to reflect the correct domain + renamed IsAllowed to IsCompatible
* Renaming + TODO
* Removed presentation logic + TODO
* Fixed controller
* Attempt for generic implementation
* Enable composition of media types + refactor content/media type editing tests to prove it (and a little renaming of a mis-named property)
* Remove unused classes
* Introducing GetAvailableCompositionsAsync to EditingServices
* Implement GetAvailableCompositionsAsync
* Base share implementation
* Tests
* Tests
* Renaming
* Clean up controller
* Clean up test
* Remove redundant check
* Create and use generic models
* Add shared implementation
* Fix and rename doc type mapper
* Fix document Type factory
* Add missing response type
* Create a base request model
* Make key nullable when new item
* Media type response models
* Default isElement to false and remove isElement param from media type related things
* Create mappings for media type compositions
* Inject generic base service to reuse implementation amongst concrete services
* Add new composition endpoints for media type
* Use specific type
* Add a reference comment to other test suite
* Add more test cases
---------
Co-authored-by: kjac <kja@umbraco.dk>
* Added management API for dynamic root and query steps.
* Open API
* Split models, use required and rename a little
* Rename query steps
* Make request culture and segment optional
* Introduce explicit back-office variation context
* Simplify query endpoint path
* Correct field naming
* Updated OpenApi.json
---------
Co-authored-by: kjac <kja@umbraco.dk>
* Fixed failing tests
* Updated tests to use the updated helpers
* Clean up tests
* Enabled our pipeline for E2E testing
* Updated the CMS URl for our E2E tests
* Bumped version of our testHelpers
* Did some fixing, still a bit more to do
* Updated auth tests to use LoginUiHelper
* Updated Telemetry tests to use TelemetryUiHelper
* Updated LogViewer tests to use LogViewerUiHelper
* Updated api tests to apply AAA pattern and fix failed tests
* Removed unused import
* Fixed comments
* Bumped version of test helper
* Updated the version to 10 instead of 11
* Updated the package-lock.json file to contain the correct versions
* Added a waitForTimeout
The reason for this is that this test is failing on the pipeline
* Bumped version of testhelpers
* Removed TODO
* Updated EnsurePathExists so we create the stylesheet and scripts folder
* Added a waits for response, otherwise our test would be too fast
* Sometimes it reloads before the save is complete
* Added timeout for locator
* Removed duplicate
* Wait until save
* This was an actual bug, so we should not use a workaround, we should fix it
* Skips the tests for script.
* Bug was fixed, so this can be used again
---------
Co-authored-by: Andreas Zerbst <andr317c@live.dk>
* Create new request models
* Create new structural operation status
* Handling of new structural operation status
* New CopyAsync and MoveAsync
* New endpoints
* Update schema
* Adding NotFound status
* Adding BadRequest response type
* Moving getbyid check to service
* Fix signature and implement get by id check in service
* Update OpenApi schema
* Use PUT instead of POST in "move" controllers
* Use PUT instead of POST in some more "move" controllers
---------
Co-authored-by: kjac <kja@umbraco.dk>
* Begin migrating test to use new service calls
* Fix formatting
* Add todo to add timeout so our tests dont stall entirely
* Add timeout so tests can run
Still need to figure out why the index only seems to update sometimes
* Migrate BackOfficeExamineSearcherTests to use new service calls
* Remove unused imports
* Migrate to languageservice in external index searcher test
* Use seperate save and publish calls
* Use scopes in ExamineExternalIndexTests
* Use scopes in BackOfficeExamineSearcherTests
* Implement user configuration endpoint
* Add password configuration factory
* refactor users to use new password configuration model
* Implement current user configuration endpoint
* Add auth policy
* Refacor current user to use PasswordConfigurationReponseModel
* Implement configuration security controller
* Rename property to less confusing name
* Add version to ConfigurationSecurityController.cs
* Review changes
---------
Co-authored-by: kjac <kja@umbraco.dk>
* Implement temporary file configuration endpoint
* Update MaxfileSize to be a string.
* Make max file size a nullable integer
---------
Co-authored-by: Elitsa <elm@umbraco.dk>
* Allow Tree endpoints that query entities to return count without entity data
* Apply count by take 0 in FileSystem Endpoints
* Apply count by take 0 in Dictionary Endpoints
* Apply count by take 0 in RootRelationType Endpoints
* Revert PaginationService takeZero flag as it only guards against things that already blow up
* Mark PagedResult as Obsolete as we want to step away from classic pagination system to skip/take
* Pushed management api RelationType pagination and async preperation down to the service layer
* Scope fix and allocation optimizations
* Pushed management api dictionary pagination and down to the service layer
Also did some nice allocation optimizations
* PR feedback + related strange count behaviour
* Moved count by pagesize logic from EntryController to service
* A tiny bit of formatting and comments
* Fix bad count filter logic
* Added integration tests for creating datatypes in a folder
* Added tests for count testing on TreeControllers
- ChildrenDataType
- RootDataType
- ChildrenDictionary
- RootDictionary
- ChildrenDocument
- RootDocument
- RootBluePrint
- RootDocumentType
- ChildrenDocumentType
* Revert "Added tests for count testing on TreeControllers", should be on services
This reverts commit ee2501fe62.
This reverts commit 808d5b276f.
---------
Co-authored-by: Sven Geusens <sge@umbraco.dk>
Co-authored-by: kjac <kja@umbraco.dk>
Co-authored-by: Andreas Zerbst <andr317c@live.dk>
* Rename information endpoint to troubleshooting
* Rename information endpoint to troubleshooting
* Add new information endpoint
* Fix bad merge
* Add InformationServerController.cs back
* Update serverTime offset to non hard-coded value.
* Add dictionary to swagger models
* Update OpenApi.json file
* Rename map definition
* Add ServerConfigurationBaseModel
* Implement ServerConfigurationBaseModel.cs
* Updated OpenApi
* Updated endpoint to return correct type in openapi
* Use explicit class for server information
* Remove version endpoint, as that is contained in server information.
---------
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Add post and delete methods to user-group/id/users to add/remove users from group
* Update OpenApi contract
* PR feedbac
Moved fetch usergroup logic into service layer
Renamed methods to async
* Naming
* Introduced user not found on UserGroupOperationStatus, as otherwise the return message is wrong
* Added authentication
* Removed authorization from the service layer as its determined that that responsibiliity does not belong there.
---------
Co-authored-by: Sven Geusens <sge@umbraco.dk>
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Making ProblemDetails details more generic
* Adding authorizer that can be replaces for external authz in handlers. Adding handler and requirement for UserBelongsToUserGroupInRequest policy
* Adding method to get the GUID from claims
* Adding service methods to check user group authz
* Porting MustSatisfyRequirementAuthorizationHandler
* Adding controllers authz
* Fix return status code + produced response type
* Moving to folder
* Adding DenyLocalLogin policy scaffold
* Implement a temp DenyLocalLoginHandler
* Introducing a new Fobidden result
* Fix comment
* Introducing a helper class for authorizers
* Changed nullability for GetCurrentUser
* Changes from Attempt to Status + FIXME comments
* Create a UserGroupAuthorizationStatus to be used in the future
* Introduces a new authz status for checking media acess
* Introducing a new permission service for media
* Adding fixme
* Adding more policy configurations
* Adding Media policy requirement and handler
* Adding media authorizer
* Fix order of params
* Adding duplicate code comment
* Adding authz to media controllers
* Migrating more logic from MediaPermissions.cs
* Adding more MediaAuthorizationStatus-es
* Handling of new authorization status
* Fix comment
* Adding NotFound case
* Adding NewDenyLocalLoginIfConfigured policy && commenting [AllowAnonymous] where the policy is applied since it is already handled
* Changed Forbid() to Forbidden() to get the correct status code
* Remove policy that is applied on the base controller already
* Implement and apply NewUmbracoFeatureEnabled policy
* Renaming classes to add Permission in the name
* Register permission services
* Add FIXME
* Introduce new IUserGroupPermissionService and refactor accordingly
* Add single overload with default implementation
* Adding user permission policy and related
* Applying admin policy
* Register all new policies
* Better wording
* Add default implementation for a single overload
* Adding remarks to IContentPermissionService.cs
* Supporting null as key in ContentPermissionService
* Fix namespace
* Reverting back to not supporting null as content key, but having dedicated implementation
* Adding content authorizer with null values to represent root item
* Removing null key support and adding dedicated implementation
* Removing remarks
* Adding content resource with null support
* Removing null support
* Adding requirement and status
* Adding content authorizer + handlers
* Applying policies to content controllers
* Update comment
* Handling of Authorization Statuses
* More authz in controllers
* Fix comments
* New branch handler
* Obsolete old implementation
* Adding dedicated policies to root and bin
* Adding a branch specific namespace
* Bin specific requirement and namespace
* Root specific requirement and namespace
* Changing to new root policy
* Refactoring
* Save policies
* Fix null check/reference
* Add TODO comment
* Create media root- and bin-specific policies, handlers, etc.
* Apply correct policy in create and update media controllers
* Apply root policy to move and sort controllers
* Fix wording
* Adding UserGroupAuthorizationStatusResult
* Remove all AuthorizationStatusResult as we cannot get the specific AuthorizationStatus
* Fixing Umbraco feature policy
* Fix allow anonymous endpoints - the value returned from DenyLocalLoginHandler wasn't enough, we need to succeed DenyAnonymousAuthorizationRequirement as it is required for some of the endpoints that had the attribute
* Apply DenyLocalLoginIfConfigured policy to corresponding re-implementation of PostSetInvitedUserPassword
* Fix comment
* Renaming performingUser to user and fixing comments
* Rename helper method
* Fix references
* Re-add merge conflict deletion
* Adding Backoffice requirement and relevant
* Registering
* Added a simple policy test
* Fixed small test things and clean up
* Temp solution
* Added one more test and fix another static issue
* Fix another merge conflict
* Remove BackOfficePermissionRequirement and handler as they might not be necessary
* Comment out again [AllowAnonymous]
* Remove AuthorizationPolicies.BackOfficeAccessWithoutApproval policy as it might not be necessary
* Fix temp implementation
* Fix reference to correct handler
* Apply authz policy to new publish/unpublish controllers
* Fix comments
* Removing duplicate ProducesResponseTypes
* Added swagger documentation about the 401 and 403
* Added Resources to Media, User and UserGroup
* Handle root, recycle bin and branch in the same handler
* Handle both parent and target when moving
* Check Ids for all sort requests
* Xml docs
* Clean up
* Clean up
* Fix build
* Cleanup
* Remove TODO
* Added missing overload
* Use yield
* Adding some keys to check
---------
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
Co-authored-by: Andreas Zerbst <andr317c@live.dk>
* ignore node_modules specifically to limit size of build_output
* build and publish backoffice artifacts
* instruct GitVersioning to output all variables such as npm to use in Pipelines
* use NBGV variables
* prepare npm package for nightlies
* instruct to deploy to MyGet for nightlies
* Deploy to npm only after Myget
* add public access to publish
* write scopes to .npmrc file
* add scope to registry.npmjs.org
* nightly param
* Refactor acceptance tests for Partial View
* Refactor api tests for Partial View
* Bumped version of Test Helper
* Added suggestion from review
* Bumped version to testhelpers 2.0.8
---------
Co-authored-by: Andreas Zerbst <andr317c@live.dk>
* Added acceptance test for Stylesheets
* Updated api test for stylesheet using new helpers and apply AAA pattern
* Bumped version of Test Helpers
* Updated api and ui tests of Stylesheet after modifying TestHelper
* Updated stylesheets ui tests using openActionMenuAtRoot()
* Added suggestions from review
* Added wait for the flaky tests
* Fixed package-lock.json
---------
Co-authored-by: Andreas Zerbst <andr317c@live.dk>
* make CoreScopeProvider available for derived classes
* Create publish controller
* Add publish functionality
* Remove unneeded using
* Implement publish for multiple cultures
* support multiple cultures in controler
* Dont validate properties
* Refactor to use PublishingOperationStatus
* refactor to use proper publish async methods
* Refactor publish logic into own service
* Commit some demo code
* Add notes about what errors can happen when publishing
* Rework ContentPublishingService and introduce explicit Publish and PublishBranch methods in ContentService
* Fix merge
* Allow the publishing strategy to do its job
* Improved check for unsaved changes
* Make the old content controller work (as best possible)
* Remove SaveAndPublish (SaveAndPublishBranch) from all tests
* Proper guards for invalid cultures when publishing
* Fix edge cases for property validation and content unpublishing + add unpublishing to ContentPublishingService
* Clear out a few TODOs - we'll accept the behavior for now
* Unpublish controller
* Fix merge
* Fix branch publish notifications
* Added extra test for publishing unpublished cultures and added FIXME comments for when we fix the state of published cultures in content
---------
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
Co-authored-by: Zeegaan <nge@umbraco.dk>
* Adding a replacement to IUserGroupAuthorizationService
* Replacement for the implementation as well
* Adding AuthorizationStatus & mapping it to the corresponding OperationStatus
* Fix references
* Fix another reference
* Fix statuses
* Fix status result messages
* Fix wording
* Moving check for user part of user group earlier
* Review suggestion
* Fix section name
* Updated api script tests for using new helpers and the AAA pattern
* Added acceptance tests for the scripts
* updated naming
* Bumped version of testHelpers
* Added suggestions from review
* Updated existing locator as it was prone to failing
* Removed old tests from earlier versions
* Added a timeout and an await. This was because the locator sometimes failed
* Added missing import for crypto
* Updated locator as it sometimes failed.
* Updated the README to include information for using the UI mode for playwright
* Bumped the timeout time for our tests
* We updated the naming for out methods in our testHelpers, so we need to update the usage as well
* Added additional timeout
* Updated the config so it is easier to understand what you need to input
* Added UI acceptance tests for templates
* Added types/node, allows us to use crypto. Updated the testhelpers to use the newest version.
* fixed error with testhelper dependency
* Bumped testhelper version
* Moved to settings instead of templating
* make the login check a bit more robust to be able to handle both old postlogin and new management api response types
* v14 only: update the login url to work with the management api (this will still work with the old backoffice to some extent)
* Revert "v14 only: update the login url to work with the management api (this will still work with the old backoffice to some extent)"
This reverts commit 0639ca80f0.
* V14 only: additionally authenticate with the Management API to set the right cookies
* Added log viewer tests, not done yet
* Updated auth to work
* Updated the authentication test
* Cleaned up the Logviewer tests
* Removed old acceptance tests
* Fixed failing test
* Updated old tests and added additional log viewer tests
* Bumped version and deleted duplicate dependencies
* Fixed naming
* Added a TODO
* Expose editor UI alias in published property type, so custom value converters can use it
* Add default property value converters for all value types (#14869)
* Add default property value converters for all value types
* Clean up some left-over stuff
(cherry picked from commit ce86abe8ac)
* Added "plain" property editors for all (meaningful) value types
* Refactor OpenIddict for shared usage between APIs + implement member authentication and handling within the Delivery API
* Make SwaggerRouteTemplatePipelineFilter UI config overridable
* Enable token revocation + rename logout endpoint to signout
* Add default implementation of SwaggerGenOptions configuration for enabling Delivery API member auth in Swagger
* Correct notification handling when (un)protecting content
* Fixing integration test framework
* Cleanup test to not execute some composers twice
* Update paths to match docs
* Return Forbidden when a member is authorized but not allowed to access the requested resource
* Cleanup
* Rename RequestMemberService to RequestMemberAccessService
* Rename badly named variable
* Review comments
* Hide the auth controller from Swagger
* Remove semaphore
* Add security requirements for content API operations in Swagger
* Hide the back-office auth endpoints from Swagger
* Fix merge
* Update back-office API auth endpoint paths + add revoke and sign-out endpoints (as of now they do not exist, a separate task will fix that)
* Swap endpoint order to maintain backwards compat with the current login screen for new back-office (will be swapped back again to ensure correct .well-known endpoints, see FIXME comment)
* Make "items by IDs" endpoint support member auth
* Add 401 and 403 to "items by IDs" endpoint responses
---------
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
Co-authored-by: Elitsa <elm@umbraco.dk>
* Added necesary classes to define the StringPropertyEditor
* Removed unnecesary code, baseclass takes care of everything
* More cleanup and added a propertyValueConverter
* Upped the expected default dataEditors in tests by 1 since we added one.
* Fixed a bad undo action
* PR feedback Removed unnecesary code and simplified methods
---------
Co-authored-by: Sven Geusens <sge@umbraco.dk>
* Change document delete into move-to-recycle-bin
* Make it possible to supply an explicit ID when creating content and media
* Change media delete into move-to-recycle-bin
* Merge "allowed child content types" controllers into one + fixed a bug that allowed all types if none were defined
* Update OpenAPI JSON to reflect merged endpoints
* 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 attribute filter to ensure a request is taking a minimum time to response
* Added functionality to management api to send forgot password emails and verify these + do the actual reset using the token
* Renamed UserKey to UserId and updated OpenApi.json
* Update src/Umbraco.Core/Services/IUserService.cs
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
* Cleanup
* Renaming param
* Fixing send user username instead of email + wrong EmailTypes
* Fixed issue with forgot password functionality after reusing other functionality
* Rename prop
* Adding docs and renaming param
* Handle password validation return types
* More cleanup
---------
Co-authored-by: Elitsa <elm@umbraco.dk>
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
* Add content and media sorting to the Management API
* Rename "id" to "key" throughout the ContentEditingService
* Update Open API json file
* Use "key" instead of "id" in ContentEditingServiceBase
* Use "key" instead of "id" in IMediaEditingService and MediaEditingService
* Turn delegates into abstracts + fix bug that allowed deleting items outside of the recycle bin
* Use PUT instead of POST
* Update src/Umbraco.Core/Services/MediaEditingService.cs
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* Update src/Umbraco.Core/Services/MediaEditingService.cs
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Update Open API JSON
---------
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* CRUD for content and media type folders + refactor data type folder CRUD controllers and services to match
* Correct response types + update OpenAPI JSON
* Review changes
* Review changes
* Update OpenAPI JSON after merge
* Add GetAsync method
* Fix up delete document type controller
* Add scope to delete async
* Add some scaffolding
* Add create model
* Start working on validation
* Move validation to its own service
* Use GetAllAsync instead of GetAsync
* Add initial composition support
Still need to figure out some kinks
* Validate compositions when creating
* Add initial folder support
* Initial handling of generic properties
* Add operation status responses
* Move create operation into service
* Add first test
* Fix issued shown by test
* Ensure a specific key can be specified when creating
* Rename container id to container key
Let's try and be consistent
* Create basic composition test
* Ensure new property groups are created with the correct key
* Add test showing property type issue
* Fix property types not using the expected key.
* Validate against model fetched from content type service
Just to make sure nothing explodes on the round trip
* Make helper for creating create models
* Add helper for creating container
* Make helper methods simpler to use
* Add test for compositions using compositions
* Add more composition tests
* Fix bug allowing element types to be composed by non element types
* Remove validators
This can just be a part of the editing service
* Minor cleanup
* Ensure that multiple levels of inheritance is possible
* Ensure doctype cannot be used as both composition and inheritance on the same doctype
* Ensure no duplicate aliases from composition and that compositions exists
* Minor cleanup
* Address todos
* Add SaveAsync method
* Renamed some models
* Rename from DocumentType to ContentType
* Clarify ParentKey as being container only + untangle things a tiny bit
* Clean out another TODO (less duplicate code) + more tests
* Refactor for reuse across different content types + add media type editing service + unit tests
* Refactor in preparation for update handling
* More tests + fixed bugs found while testing
* Simplify things a bit
* Content type update + a lot of unit tests + some refactor + fix bugs found while testing
* Begin building presentation factories for mapping view models to editing models
* Use async save
* Mapping factories and some clean-up
* Rename Key to Id (ParentKey to ParentId)
* Fix slight typo
* Use editing service in document type controllers and introduce media type controllers
* Validate containers and align container aliases with the current backoffice
* Remove ParentId from response
* Fix scope handling in DeleteAsync
* Refactor ContentTypeSort
* A little renaming for clarity + safeguard against changes to inheritance
* Persist allowed content types
* Fix bad merge + update controller response annotations
* Update OpenAPI JSON
* Update src/Umbraco.Cms.Api.Management/Controllers/DocumentType/DocumentTypeControllerBase.cs
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
* Fix review comments
* Update usage of MapCreateAsync to ValidateAndMapForCreationAsync
---------
Co-authored-by: Nikolaj <nikolajlauridsen@protonmail.ch>
* Try undoing inheritance change
Just to see if the issue stems from there
* Try specifying order again
* Log something
* Maybe it's a culture thing
* That wasn't it
* Maybe content deliver need to exist as an applicationPart
* Order found types
* Cleanup
* Refactor GetPagedLogsAsync to not use ILogViewer
* Refactor GetPagedLogsAsync to not use ILogViewer
* Reorder using statements
* Introduce ILogViewerRepository
* Remove skip and take from repository
* Return IEnumerable instead of pagedModel
* Remove local GetLogs
* Return IEnumerable instead of pagedmodel
* Remove serilog entirely from ILogViewerService
* Move LogViewerService
* Inject LogViewerService as core service instead
* Implement LogViewerServiceTests.cs
* Add more happy path tests
* Add saved query tests
* Refactor private path fields to normal variables in setup method
* Capitalize logs for Unix systems
* Added missing documentation
---------
Co-authored-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Elitsa <elm@umbraco.dk>
* Implement GetEntryByContentKey
* Implement PublicAccessResponseModel
* Implement IPublicAccessPresentationFactory
* Rename MemberGroupItemReponseModel to MemberGroupItemResponseModel
* Refactor PublicAccessResponseModel to use Ids instead of entire content items
* Return attempt instead of PresentationModel
* Add missing statuses to PublicAccessOperationStatusResult
* Implement PublicAccessDocumentController.cs
* Refacotr PublicAccessResponseModel to use a base model
* Add CreatePublicAccessEntry method
* Refactor AccessRequestModel to use names not ids :(
* Rename ErrorPageNotFound to ErrorNodeNotFound
* Implement new SaveAsync method
* Introduce more OperationResults
* Implement PublicAccessEntrySlim
* Implement SaveAsync
* Remove CreatePublicAccessEntry from presentation factory
* Rename to CreateAsync
* Implement UpdateAsync
* Rename to async
* Implement CreatePublicAccessEntry
* Implement update endpoint
* remove PublicAccessEntrySlim mapping
* implement CreatePublicAccessEntrySlim method
* Refactor UpdateAsync
* Remove ContentId from request model as it should be in the request
* Use new service layer
* Amend method name in update controller
* Refactor create public access entry to use async method and return entity
* Refactor to use saveAsync method instead of synchronously
* Use presentation factory instead of mapping
* Implement deleteAsync endpoint
* Add produces response type
* Refactor mapping to not use UmbracoMapper, as that causes errors
* Update OpenApi.json
* Refactor out variables to intermediate object
* Validate that groups and names are not specified at the same time
* Make presentation factory not async
* Minor cleanup
---------
Co-authored-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Nikolaj <nikolajlauridsen@protonmail.ch>
* Added functionality to verify user invite tokens and create the initial password
* Add response types
* Fail ValidateCredentialsAsync when user is not approved
* Enable user as part of initial password creating using validation token
* Adds documentation to badrequest and changed nocontent to ok, to align with other APIs
* Fixed tests and added a new one
---------
Co-authored-by: nikolajlauridsen <nikolajlauridsen@protonmail.ch>
* Adding default values to skip and take to align with the rest of the controllers
* Changing skip and take type from long to int to align with the rest
* Fixing wrong response type
* Remove double skip and take
* Update json file
* Implement allowed children of root
* Allow children by key controller
* Update to be document controlller instead
* Fix AllowedChildrenOfRootDocumentController
* Create GetAllAsync method in ContentTypeServiceBaseOfTRepositoryTItemTService
* Revert "Create GetAllAsync method in ContentTypeServiceBaseOfTRepositoryTItemTService"
This reverts commit b01b5b9240.
* Implement attemp pattern in IContentTypeService
* Create IContentCreatingService
* Use new contentCreatingService in controller
* Revert if statement
* Use total from attempt
* Throw exceptions instead of returning attempt
* Wrap in scope
* Rename to GetAllowedChildrenContentTypesAsync
* Fix summary
* Removed unneccessary await Task.FromResult
---------
Co-authored-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Updated our dataType API tests to use our updated testHelpers
* Updated our dataTypeFolder API tests to use our updated testHelpers
* Updated our dictionary API tests to use our updated testHelpers
* Updated our language API tests to use our updated testHelpers
* Updated our partialView API tests to use our updated testHelpers
* Updated our partialViewFolder API tests to use our updated testHelpers
* Updated our script API tests to use our updated testHelpers
* Updated our scriptFolder API tests to use our updated testHelpers
* Updated our stylesheet API tests to use our updated testHelpers
* Updated our stylesheetFolder API tests to use our updated testHelpers
* Updated our telemetry API tests to use our updated testHelpers
* Updated our template API tests to use our updated testHelpers
* Updated our temporaryFile API tests to use our updated testHelpers
* Updated our user API tests to use our updated testHelpers
* Updated our userAvatar API tests to use our updated testHelpers
* Updated our userGroup API tests to use our updated testHelpers
* Fixed failing text
* Bumped to use the newest version of our testHelpers
* add extension method to rewrite requests meant for backoffice static assets
* add backoffice rewrites to application builder
* embed the umbraco hash into the static assets requested on the backoffice
* Added a IStaticFileHostGenerator so its possible to replace our logic
* add docs and ensure the path is uniform with single slashes
---------
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Add OpenIddict tables to database (#14449)
* Added migrations to install EF Core OpenIddict tables
* Handle Install of ef core data (Needs to be outside of transaction
* Cleanup and renaming, as these things will be reused for more than openiddict in the future
* Cleanup
* Extract db context setup
* Minor cleanup
---------
Co-authored-by: Nikolaj <nikolajlauridsen@protonmail.ch>
* Use OpenIddict from DB instead of InMemoryDb
* Do not try to clean up, while not it run mode
* Fixed tests
* Clean up
---------
Co-authored-by: Nikolaj <nikolajlauridsen@protonmail.ch>
Co-authored-by: Elitsa <elm@umbraco.dk>
* Added auth to gitignore
* Added a setup for logging in which allows us to save the token for the user
* Added simple acceptance test for testing our api for the DataTypes
* Added simple acceptance tests for testing the API for the PartialView section
* Added simple acceptance tests for testing the API for the Script section
* Added acceptance tests for testing the API for the Stylesheet section.
* Added acceptance tests for testing the API for the User section
* Bumped the version of our testhelpers!
* Added acceptance tests for testing the API for the Dictionary section.
* Added acceptance tests for testing the API for the Language section.
* Added acceptance tests for testing the API for the UserGroups section.
* Added acceptance tests for testing the API for the Template section
* Added acceptance tests for testing the API for the TemporaryFiles section
* Our first UI test for v14
Added acceptance tests for the telemetry section
* Removed page.pause
* Added auth to gitignore
* Added a setup for logging in which allows us to save the token for the user
* Added simple acceptance test for testing our api for the DataTypes
* Added simple acceptance tests for testing the API for the PartialView section
* Added simple acceptance tests for testing the API for the Script section
* Added acceptance tests for testing the API for the Stylesheet section.
* Added acceptance tests for testing the API for the User section
* Bumped the version of our testhelpers!
* Added acceptance tests for testing the API for the Dictionary section.
* Added acceptance tests for testing the API for the Language section.
* Added acceptance tests for testing the API for the UserGroups section.
* Added acceptance tests for testing the API for the Template section (#14450)
* Added acceptance tests for testing the API for the Template section
* Added acceptance tests for testing the API for the TemporaryFiles section (#14451)
* Added auth to gitignore
* Added a setup for logging in which allows us to save the token for the user
* Added simple acceptance test for testing our api for the DataTypes
* Added simple acceptance tests for testing the API for the PartialView section
* Added simple acceptance tests for testing the API for the Script section
* Added acceptance tests for testing the API for the Stylesheet section.
* Added acceptance tests for testing the API for the User section
* Bumped the version of our testhelpers!
* Added acceptance tests for testing the API for the Dictionary section.
* Added acceptance tests for testing the API for the Language section.
* Added auth to gitignore
* Added a setup for logging in which allows us to save the token for the user
* Added simple acceptance test for testing our api for the DataTypes
* Added simple acceptance tests for testing the API for the PartialView section
* Added simple acceptance tests for testing the API for the Script section
* Added acceptance tests for testing the API for the Stylesheet section.
* Added acceptance tests for testing the API for the User section
* Bumped the version of our testhelpers!
* Added acceptance tests for testing the API for the Dictionary section.
* Added auth to gitignore
* Added a setup for logging in which allows us to save the token for the user
* Added simple acceptance test for testing our api for the DataTypes
* Added simple acceptance tests for testing the API for the PartialView section
* Added simple acceptance tests for testing the API for the Script section
* Added acceptance tests for testing the API for the Stylesheet section.
* Added acceptance tests for testing the API for the User section
* Bumped the version of our testhelpers!
* Added auth to gitignore
* Added a setup for logging in which allows us to save the token for the user
* Added simple acceptance test for testing our api for the DataTypes
* Added simple acceptance tests for testing the API for the PartialView section
* Added simple acceptance tests for testing the API for the Script section
* Added acceptance tests for testing the API for the Stylesheet section. (#14442)
* Added auth to gitignore
* Added a setup for logging in which allows us to save the token for the user
* Added simple acceptance test for testing our api for the DataTypes
* Added simple acceptance tests for testing the API for the PartialView section
* Added auth to gitignore
* Added a setup for logging in which allows us to save the token for the user
* Added simple acceptance test for testing our api for the DataTypes
* update package templates with new umbraco-package.json format
* remove $schema for now because we dont know where people will locate this file (refer to documentation)
* update script to compile frontend api docs
* update backoffice submodule
* set the base path for the ui docs
* update env syntax
* remove Umbraco.Web.UI.Docs
* replace BASE_PATH in assets
* Make Upload API step able to run without releasing on nuget
* add dependOn Build to get major version number
* Add alias to document item response
* Add master template key to detailed model
* Add mater template key as optiona parameter to Scaffolding
* Check for duplicate alias when creating templates directly
* Clean
* Ensure integration tests creates templates with unique aliases
* Perform mapping in presentation factory
* Add current user data endpoint
* Add Change password endpoint
* Add SetAvatar
* Add get node permissions
* Add endpoint for getting currently logged in users linked logins
* Add tour service
* Add get tours
* Add set tour endpoint
* Added PermissionNames to IReadOnlyUserGroup
* Only require backend auth on management api
* Use ISet in response model
* Fixed issue with saving null as startMediaId, where it was ignored
* Add get current user endpoint
* Fix missing linebreak
* Append "New" keyword to policies
* Update OpenApi
---------
Co-authored-by: Nikolaj <nikolajlauridsen@protonmail.ch>
* Add current user data endpoint
* Add Change password endpoint
* Add SetAvatar
* Add get node permissions
* Add endpoint for getting currently logged in users linked logins
* Add tour service
* Add get tours
* Add set tour endpoint
* Split permissions endpoint in two, one for media and one for document
* ignore output files
* add new umb-login element
* allow to build and clean 'login' assets
* remove unused AuthUrl since this is now coded into the frontend code for each context
* ensure the ReturnUrl has a fallback to the default installation directory, since if you accidentally hit the login page and login, nothing happens if there is no return url
* switch to DependsOnTargets to account for if this is the only target being run (we need node_modules installed)
* add UmbracoUrl property
* add taghelper to use asp-append-version on login static assets
* copy umbraco-package-schema.json over from the New.Client build
* when a project referencing Cms.Targets is building, we want to copy out the umbraco-package-schema.json file to the project directory if it does not exist
* ignore built output files
* fix typo
* add PackageReference to Umbraco.Cms.Targets to ensure dependent json schema files are copied over
* add to gitignore
* add target to remove the _UmbracoCmsPackageSchemaReference on clean
* Revert "add PackageReference to Umbraco.Cms.Targets to ensure dependent json schema files are copied over"
This reverts commit 339043a36f.
* generate umbraco-package-schema.json on demand in Cms.Targets
* add generated file to .gitignore
* Add variant information to the document tree model
* Add content type key to document tree and item
* Add sort order to PropertyTypeResponseModelBase
* This moves around files and deletes the temp projects with files that are not moved to Core, Infrastructure etc.
Also moves the from new backoffice to static access, and override those with the old views in the legacy executeable
* Removes old files from the new executeable.
* Added missing files
* Added EF Core project to solution file
* fix build
* Updated API version package and moved attribute to each controller as it cannot be inherited.
* Ignore "$type" on types implementing interfaces in the delivery api
* Add scaffolding
* Entities not Entitys
* Remove unececary obsoleted constructor
* Implement create script
* Return a simplified ScriptFile instead of IScript
That file abstraction seems way too bloated, containing a lot of stuff that's not relevant for files, such as IDs and keys.
* Use IScript instead of custom return model
* Add validation when creating script
* Add Get script endpoint
* Add response types
* Add Delete
* Throw if user key not found
* Remove unused maapper
* Add update endpoint
* Add Get by path
* Add create folder endpoint
* Don't pass performingUserId to folder creation
* Remove update folder
* Add delete folder endpoint
* Use specific ScriptFolderOperationStatus instead of ScriptOperationStatus
* Add OperationStatusResult
* Check folder for invalid name
* Check name for invalid characters
* Add partial view snippet endpoint
* Start working on CreatePartialView
* Add create partial view endpoint
* Retrieve key from audit method
* Add operation status results
* Add Get endpoint
* Return 201 when creating
* Add update partial view endpoint
* Add delete endpoint
* Add response types
* Add folder base implementation
* Add folder endpoints
* User property for allowed file extensions
* Rename async method to async
* Break snippet into endpoint in two
* Make content non-nullable
* Remove IService
* Add get by path
* Add viewmodels
* Add create and update models
* Add create stylesheet
* Add update endpoint
* Rename StylesheetControllerBase to StylesheetControllerBase
* Add stylesheet delete
* Rename controller bases
* Add stylesheet folders
* Add status results
* Add response types to folders
* Add richtext rules endpoints
* Add Get all endpoint
* Add get rules by path endpoint
* Aling validates so they're not async
These are private methods, so there's no reason to make them preemptively async
* Add template obsoletions to interface
* Add stream methods
This is evidently used by deploy 🤷
* Obsolete stylesheet operations
* Add get and getall across all services
* Obsolete script operations
* Obsolete old partial view methods
* Add some method docs
* Add compatibility suppression
* Update OpenApi.json
* Rename action
* formatting
* Fix import
* add expression body
* Invert if
* Move base on own line
* Rename file
* Rename to all
* Change to stylesheet instead of script
* Add Umbraco.Code.MapAll to map definitions
* Add comment about auditing
* use publish cancelable async
* use expression body
* formatting
* fix to use pattern matching
---------
Co-authored-by: Zeegaan <nge@umbraco.dk>
* Only add version to operationId when the version is not the default version
* Updated OpenApi.json
* A little code formatting
* Update OpenAPI JSON so the tests pass
---------
Co-authored-by: kjac <kja@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>
* Rename UsersController to UserController
* Rename namespace to User
* Rename UserGroupsControllerBase to UserGroupControllerBase
* Rename namespace to UserGroup
* New backoffice: User and member item endpoints (#14079)
* Implement ByKeys in MemberService
* Implement member item endpoint
* Add routing to static file item controller
* Implement user item endpoint
* Implement user group item endpoint
* return proper response model
* update OpenApi.json
* Add CompatibilitySuppressions
* Cleanup
* Update OpenApi
---------
Co-authored-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Elitsa <elm@umbraco.dk>
* Make user-group item endpoint singular
* Make user item endpoint singular
* Renamer user and user group folders
* Move from Users namespace to user
* Move from UserGroups namespace to UserGroup
* Update OpenApi.json
* Fix namespace after merge
* Move user item endpoint to singular namespace
* Move user group item endpoint to singular namespace
* Fix open api schema
---------
Co-authored-by: Nikolaj Geisle <70372949+zeegaan@users.noreply.github.com>
Co-authored-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Elitsa <elm@umbraco.dk>
* Add a dedicated (temporary) cookie setup for new backoffice logins, so old and new backoffice can co-exist behind separate logins
* use temp management api login endpoint for authentication
* Update OpenAPI JSON
---------
Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
* Throw from IUserIdKeyResolver if id/key not found. This is too critical to not throw.
* Fixed tests
* Explicitly test that we can resolve super user key/ID from their counterparts
---------
Co-authored-by: kjac <kja@umbraco.dk>
* 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>
* Added is-used endpoints
* Updated CompatibilitySuppressions.xml
* Minor cleanup
* Fix issue where only document types was supported. Now also media and member types is supported
* CompatibilitySuppressions.xml
---------
Co-authored-by: Nikolaj <nikolajlauridsen@protonmail.ch>
* Add user group keys to constants
* Update migration to assign the right keys
* Update DataCreator
* Fix FIXME with removing ExcludedUserGroupAliases
* Obsolete group aliases
* Implement ByQueryEndpoint
* Implement new async methods on tag service
* dont have nullable query
* Formatting
* Add default implementation to interface
* Allow nullable query in api
---------
Co-authored-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Nikolaj <nikolajlauridsen@protonmail.ch>
* 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>
* Changed some keys to ids and fixed so users can provide Ids when creating
* updated OpenApi.json
* Fixed issue with datatypes when wrong propertyEditorAlias was used and allow creating with key
* Updated OpenApi.json
* Handle duplicate names correct
* Fix for parent not found
* Handle if parent is not a container
* Update CompatibilitySuppressions
---------
Co-authored-by: Nikolaj <nikolajlauridsen@protonmail.ch>
* 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>
* Fix total number of items for health check controllers
* Fix total amount of items for log viewer controller
* Fixing AllMigrationStatusPackageController
* Fixing total items for package controllers
* Adding default implementation
* Update Nerdbank.GitVersioning dependency to 3.5.119
---------
Co-authored-by: Ronald Barendse <ronald@barend.se>
* 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>
* Added temporary file uploads including a repository implementation using local temp folder.
* missing files
* Fixed copy paste error
* Updated OpenApi.json
* Updated OpenApi.json
* Added file extension check
* Clean up. Removed old TemporaryFileService and UploadFileService and updated dictionary items to use this new items
* Clean up
* Get rid of stream directly on TemporaryFileModel, and use delegate to open stream instead.
* Review changes
* Moved models to their own files
* Reverted launch settings
* Update open API JSON file
---------
Co-authored-by: kjac <kja@umbraco.dk>
* Add default super user key to migrations
* Minor tweaks
* Obsolete superuser id
---------
Co-authored-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Nikolaj <nikolajlauridsen@protonmail.ch>
* 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
* CRUD API for media + get by ID for media types
* A little housekeeping for documents (align with media)
* Update Open API json
* Add messages to NotFound results (both content and media)
* Review changes; use same model for content and media URLs + return bad request when trying to move something to trash that is already in trash
* Fix bad merge + rename base (response) classes appropriately between both media and content types
* 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>
* Adding migration to update the default GUID value of created packages
* Updating the GUID if it is the default value when a package is saved
* Adding PackageDefinitionViewModel for representing a package
* Adding a mapping for package representation
* Adding PackageControllerBase, GetAllCreated and GetEmpty endpoints
* Adding GetCreatedByKey endpoint
* Adding GetByKey implementation for created packages
* Include MapAll comment
* Adding Download package endpoint
* Saving created package endpoint
* Adding a factory to create a PackageDefinition from view model
* Cleanup
* Fix error message
* Check for duplicate package name
* Remove commented out DuplicateNameException
* Moving created packages to /created folder/base
* Implement delete endpoint
* Update OpenApi.json
* Fix package route
* Fix OpenApi.json
* Add Ok() around the result
* Create PackageBuilderExtensions
* Adding suppression changes
* Cleanup
* Use ProblemDetailsBuilder
* Extract collecting installed packages from package migration plans into its own method
* Use GetInstalledPackagesFromMigrationPlans to return all migration statuses
* Add Status to DictionaryControllerBase ProblemDetails
* Implement RunMigrationPackageController
* Adding more information to the log message
* Update OpenApi.json
* Change param name
* Fix OpenApi.json
* Fix response type for Log viewer endpoint
* Remove EmptyPackageController
* Rename to RunPendingPackageMigrations
* Introduce new PackageOperationStatus
* Making methods async and introducing new Create, Update and Delete methods
* Fix async calls
* Fix Mapper - multiple enumeration and cleanup
* Creating special action models
* Fixing the factory with new models changes
* Service implementation changes
* Removing SaveCreatedPackageController as the functionality is split between Create and UpdateCreatedPackageController
* Utilize the new DeleteCreatedPackageAsync
* Refactor DownloadCreatedPackageController as some responsibility is moved to the service
* Refactor PackagingService to use auditService
* Refactor PackagingService to use skip/take
* Refactor services to return pagedmodel
* Refactor controller to use new return value
* update OpenApi.json
---------
Co-authored-by: Zeegaan <nge@umbraco.dk>
* Implement AuditLogByTypeViewModel
* Add GetLogs endpoint
* Implement AuditLogViewModelFactory and use it
* Remove mapping and do that in ViewModelFactory
* Add Skip take pagination to AuditService.cs
* Get entity key from repository
* Only create filter if sincedate has value
* Refactor to handle enitity not being found
* Add by type route
* Rename AuditLogViewModel.cs
* Add CreateAuditLogWithUsernameViewModel method to factory
* Rename method in factory
* Fix up controllers to use async service
* Refactor to use pagedModel
* Update sincedate query
* Add FIXME
* Move entity call in scope
* Rename methods to async
* Update src/Umbraco.Core/PaginationHelper.cs
* Refactor to use IActionResult
* Audit log in two words
* Fix up by key
* Fix routing
* Fix ByType
* Update ByType routing
* Refactor to also pass DateStamp
* Add Key to WithUserNameViewModel
* Refactor extension method to call new GetAsync method
* use new GetAsync method
* Rename models and implement base class
* Update OpenApi.json
---------
Co-authored-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Nikolaj <nikolajlauridsen@protonmail.ch>
* Add MSSQL migration
* Make upgrade possible when user doesn't have a key yet
* Migrate SQLite
* Migrate the external login column
* Fix logging in after migration
* Handle fake GUID correctly
* Make GetByKey async
* Resolve external logins by key instead of id
* Remove usage of naive UserIdToInt
* Dont use ToGuid for property type defaults
* Use constant GUID for user groups
* Ensure that the same GUID is used to create the root user.
* Add migration for two factor logins
* Add default implementations
* Fix unit test
* Remove TODO
* Fix integration tests
* Add default implementation instead of throwing
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Make SQLServer migration idempotent
* Add comment about SQLite
* Fix typo
---------
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Updated miniprofiler and added a few configurations
* added fixme
* Remove file that should not have been committed
* added ignore list. We check the entire path and ignore client requests anyway
* 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>
* Updated OpenIddict to v4 and when through the migration guide.
(SetAuthorizationEndpointUris and SetTokenEndpointUris should not start with a leading / anymore)
* Fixed issue where the old backoffice did not build
* Fixed build
* Fake a change - hopefully npm can see the file now?
* try using npm install instead of npm ci
* Another trial
* remove build of old backoffice
* Oops build new backoffice - not the old
* rollback changes to static assets
* Foreach csproj file instead. Fix for breaking change in dotnet sdk 7.0.200
* Fixed issues where we returned incorrectly 201 with CreatedResultViewModel
* Updated OpenAPI Spec
* Fixed OpenApi
* Added response header to swagger when 201 result
* Clean up
* Introduce root key constant
* Do not enforce ProblemDetails on every non-success response from the API + remove invalid NotFoundResult response types from various endpoints
* Update OpenAPI JSON contract to reflect the new NotFound results
* Add move/copy operations to datatype API
* Add compat suppressions for new interface methods
* Regenerate OpenAPI JSON
* Update OpenApi.json
* Ensure we can copy a datatype to root + make the target key nullable (explicit) for move and copy operation models
* Handle parent not found status
* Update the OpenAPI spec to reflect new nullability
* Cleanup
---------
Co-authored-by: Elitsa Marinovska <elm@umbraco.dk>
* Sanitize dictionary overview and export actions
* Amend dictionary services with async and attempt pattern + isolate temporary file handling in its own service.
* Update OpenAPI schema to match new dictionary bulk actions
* Implement move API for dictionary items.
* Add unit tests for dictionary item move
* Fix merge
* Update OpenAPI json after merge
* Refactor AllHealthCheckGroupController to return just the names of the groups + changes in the HealthCheckFactory
* Introduce a new "get by name without results" endpoint
* Create a "check" endpoint
* View models changes
* Factory renaming changes
* Remove Task.FromResult
* Update OpenApi.json
* Minor updates
* Inject HealthCheckCollection directly into the factory
* 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 UniqueId to AppendGroupBy
Otherwise MSSQL grenades
* Cleanup
* Update CompatibilitySuppressions
* Rename UniqueId to Key
* Cleanup
---------
Co-authored-by: Elitsa Marinovska <elm@umbraco.dk>
* Use language ISO code for language fallback instead of language ID
* Remove language and language ID from dictionary item and dictionary item translation
* ADd unit test for dictionary item translation value extension
* Make the internal service implementations sealed
* Rename translation ISO code to be more explicit in its origin (Language)
* Add breaking changes suppression
* Handle save of invalid fallback iso code
* Fixed test
* Only allow non-UserCustomCulture's
* Fixed and added tests
* Rename ISO code validation method
* Fix language telemetry test (create Swedish with the correct ISO code)
---------
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Make data type CRUD operations async using Attempt pattern
* Refactor data type container management to its own service + add unit tests for it
* Add compatability suppression for new interface methods and unit test changes
* Align the template services and API with the dictionary ones (use attempt pattern)
* A little controller clean-up
* Mimic old file service behavior, make unit tests happy
* Align CreateForContentTypeAsync return value with the rest of the TemplateService API
* Scaffold endpoint should no longer feature master templates
* Update the OpenAPI JSON
* Rework language service and API
* Revert unintended commit of Directory.Build.props
* Create OS conditional test for invalid ISO codes
* Reintroduce and obsolete old Delete method on ILocalizationService + make new Delete method delete by ISO code + add obsoletion attrs to service implementation
* Review comments + utilize new Delete method
* Do not allow model reuse when creating a new language
* Fix bad merge
* Split localization service into dedicated services for language and dictionary item handling
* Replaced ILocalizationService usage in management API (as much as can be done for now)
* Ensure we can create dictionary items with explicit keys (but no duplicates)
* Fix culture controller so it works properly with pagination
* Update OpenAPI JSON
* Actually update the language being updated...
* Unit test for invalid ISO now no longer needs to differ between OS :)
* A little bit of code health improvements
* A litte less code duplication
* Remove duplicate validation
* Fixing a few nullable reference types for log viewer (#13634)
(cherry picked from commit b4ca2a6636)
* Adding LogControllerBase
* Migrating GetLogLevels()
* Migrating GetNumberOfErrors()
* Migrating GetLogLevelCounts()
* Migrating GetCanViewLogs()
* Migrating GetMessageTemplates()
* Migrating GetLogs()
* Migrating GetSavedSearches()
* Migrating PostSavedSearch()
* Migrating DeleteSavedSearch()
* Adding LoggerViewModel
* Adding LogViewModelMapDefinition
* Update OpenApi.json
* Cleanup
* V12: Change nullability for the log searches (#13647)
* Changing nullability
* Obsolete DeleteSavedSearch since the query param is not used
* Fix a bit more referenced
* Add default implementation for the new overload of DeleteSavedSearch
(cherry picked from commit 5e06f5a8a0)
* Updates based on nullability fix
* Adding GetSavedSearchByName
* Implementing ByName endpoint
* Refactoring Delete endpoint based on GetSavedSearchByName
* Refactoring Create endpoint to return the item's location
* Suppress new GetSavedSearchByName in ILogViewer interfaces
* Update OpenApi.json
* Adding github initials to FIXME
* Renaming
* Moving files to Core proj
* Adding GetLogs with skip and take
* Introducing ILogViewerService
* Supressing xml for ILogViewer.GetLogsAsPagedModel()
* Changing to our own Enum representation of LogLevel
* Creating ILogEntry needed for GetPagedLogs()
* Refactoring controllers to use the new logViewerService
* Removing base class methods since those have been moved to the new service
* Removing ErrorCountLogViewerController since the result can be calculated from another endpoint
* Refactoring the MapDefinition because of the new return types from the service
* Update OpenApi.json
* Obsoleting old methods in favor of the ILogViewerService
* Cleanup
* Fixing enum representation as strings for Swagger
* Adding documentation
* Changing enum representation to string in OpenApi.OpenApi.json
* Fix FIXME (use CreatedAtAction)
* Removing JsonStringEnumConverter as there should be another way to fix enum representation for Swagger
* Removing MappingBuilderExtensions and making specific LogViewerBuilderExtensions
* Changes to the .sln file
* Take only the result in the response
* Register the LogViewer extensions
* Update OpenApi.json
* Fix the supressions.xml
* Add inheritdoc
* Remove GetSavedSearchByName as it isn't necessary to introduce it anymore
* Obsolete interfaces
* Rename ViewPermission controller to ValidateLogFileSize
* Make rest of the methods async
* Route name change
* Remove methods obsoletion
* Introduce the "attempt" pattern
* Refactoring of ILogViewerService
* Refactoring controllers
* Another OpenApi.json update
* Adding fixme
* Re-add new client project
Co-authored-by: nikolajlauridsen <nikolajlauridsen@protonmail.ch>
* Rework dictionary CRUD operations
* Update OpenAPI json
* Move responsibility to localization service, introduce new attempt pattern for create and update operations, update unit tests accordingly
* Fix merge
* Rollback assumption that we can map entities from scratch (entity relations got in the way)
* Update OpenAPI JSON
* Add breakage supressions
* Add compat suppressions for integration test project
* Make dictionary item deletion follow same pattern as create and update
* Review comments + update delete to use new pattern
* Update breakage suppressions to match the new Delete method
* Added a new executeable to new backoffice
* add new backoffice client as submodule
* add new backoffice client as project
* add bootstrap of backoffice client
* experimentally allow CORS from local vite app running the backoffice
* fix base path
* move new backoffice projects to NewBackoffice folder
* add support for redirect urls to login page (temporary)
* update references to v13
* override databaseinstall/index.cshtml
* copy ignore lines from normal project
* remove redirect to AuthorizeUpgrade
* codeql: checkout submodules
* Section catch-all route
* fixed tests
* remove starter-kit file
* remove grid views
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Refactored ManagementApiComposer into several extension classes
* ADd support for non-nullable reference types in OpenAPI doc
* Update OpenAPI JSON to reflect new (lack of) nullability
* Don't add factories twice :)
* Rework composing + move backoffice route detection for management API to core
* 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>
* Template query builder API
* Create a dedicated template service (copy template operations from file service)
* CRUD API for templates
* Make file service consume the template service (remove duplicated code)
* Use the template service in the old template controller so we can track changes better (note: this is breaking, but it doesn't matter as the controller will be deleted)
* Add scaffolding to the template API
* Make the route differ between query settings and execution
* Get rid of ugly string constants
* Refactor query execution a little to improve code health
* Fix build checks (compat)
* Deduce the master template from the template contents
* Make template service async, move master template parsing into template service
* Fix open API test
* Make sure the unit tests use new template parsing
* Add FIXME for SetMasterTemplate
* added obsolete attributes
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Add PropertyEditorUiAlias to datatype incl. migration for persistence
* Add configuration validation
* Folder CRUD (reusable for other folder trees) + datatype delete + more RESTish response from datatype create and update
* API for datatype references
* Clean up response types, swagger metadata and fix OpenAPI test
* Allow breakage in the build
* Use yield return pattern
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* Fix incorrect return type from references API
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* 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
2022-12-21 14:29:59 +01:00
6496 changed files with 170979 additions and 387343 deletions
@@ -13,6 +13,16 @@ If the answer is yes, please read on. Otherwise, make sure to head on over [to t
↖️ You can jump to any section by using the "table of contents" button (  ) above.
## Getting Started:
To run umbraco, we first need to initialize the client git submodule:
* Execute `git submodule update --init` to get the files into Umbraco.Web.UI.Client project
* If you are going to work on the Backoffice, you can either go to the Umbraco.Web.UI.Client folder and check out a new branch or set it up in your IDE, which will allow you to commit to each repository simultaneously:
* **Rider**: Preferences -> Version Control -> Directory Mappings -> Click the '+' sign
* If you get a white page delete Umbraco.Cms.StaticAssets\wwwroot\umbraco folder and run `npm ci && npm run build:for:cms` inside Umbraco.Web.UI.Client folder to clear out any leftover files from older versions.
### Latest version
* If you want to get the latest changes from the client repository, run `git submodule update` again which will pull the latest main branch.
> This is an early WIP and is set not to be packable since we don't want to release this yet. There will be breaking changes in these projects.
This solution folder contains the projects for the new backoffice. If you're looking to fix or improve the existing CMS, this is not the place to do it, although we do very much appreciate your efforts.
### Project structure
Since the new backoffice API is still very much a work in progress, we've created new projects for the new backoffice API:
* Umbrao.Cms.ManagementApi - The "presentation layer" for the management API
* "New" versions of existing projects, should be merged with the existing projects when the new API is released:
* Umbraco.New.Cms.Core
* Umbraco.New.Cms.Infrastructure
* Umbraco.New.Cms.Web.Common
This also means that we have to use "InternalsVisibleTo" for the new projects since these should be able to access the internal classes since they will when they get merged.
[](https://twitter.com/intent/follow?screen_name=umbraco)
[](https://github.com/codespaces/new?hide_repo_select=true&ref=contrib&repo=10601208&machine=basicLinux32gb&devcontainer_path=.devcontainer%2Fdevcontainer.json&location=WestEurope)
Umbraco is the friendliest, most flexible and fastest growing ASP.NET CMS, and used by more than 500,000 websites worldwide. Our mission is to help you deliver delightful digital experiences by making Umbraco friendly, simpler and social.
### Umbraco is a free and open source .NET content management system. Our mission is to help you deliver delightful digital experiences by making Umbraco friendly, simpler and social.
Learn more at [umbraco.com](https://umbraco.com)
<p align="center">
<img src="img/logo.png" alt="Umbraco Logo" />
<img src="img/logo.png" alt="Umbraco Logo" />
</p>
See the official [Umbraco website](https://umbraco.com) for an introduction, core mission and values of the product and team behind it.
## <a name="install"></a>Looking to install Umbraco?
- [Getting Started](#getting-started)
- [Documentation](#documentation)
- [Community](#join-the-umbraco-community)
- [Contributing](#contributing)
You can get started using the following commands on Windows, Linux and MacOS (after installing the [.NET Runtime and SDK](https://docs.umbraco.com/umbraco-cms/fundamentals/setup/requirements)):
Please also see our [Code of Conduct](https://github.com/umbraco/.github/blob/main/.github/CODE_OF_CONDUCT.md).
## Getting Started
[Umbraco Cloud](https://umbraco.com/cloud) is the easiest and fastest way to use Umbraco yet, with full support for all your custom .NET code and integrations. You're up and running in less than a minute, and your life will be made easier with automated upgrades and a built-in deployment engine. We offer a free 14-day trial, no credit card needed.
If you want to DIY, then you can [download Umbraco]((https://our.umbraco.com/download)) either as a ZIP file or via NuGet. It's the same version of Umbraco CMS that powers Umbraco Cloud, but you'll need to find a place to host it yourself, and handling deployments and upgrades will be all up to you.
```
dotnet new install Umbraco.Templates
dotnet new umbraco --name MyProject
cd MyProject
dotnet run
```
## Documentation
The documentation for Umbraco CMS can be found [on Our Umbraco](https://docs.umbraco.com/). The source for the Umbraco docs is [open source as well](https://github.com/umbraco/UmbracoDocs) and we're happy to look at your documentation contributions.
Our [comprehensive documentation](https://docs.umbraco.com/umbraco-cms) takes you from the fundamentals on how to start with Umbraco to deploying it to production.
## Join the Umbraco community
Some important documentation links to get you started:
Our friendly community is available 24/7 at the community hub, we call ["Our Umbraco"](https://our.umbraco.com/). Our Umbraco features forums for questions and answers, documentation, downloadable plugins for Umbraco, and a rich collection of community resources.
- [Getting to know Umbraco](https://docs.umbraco.com/umbraco-cms/fundamentals/get-to-know-umbraco)
- [Tutorials for creating a basic website and customizing the editing experience](https://docs.umbraco.com/umbraco-cms/tutorials/overview)
Besides "Our", we all support each other in our [Community Discord Server](https://discord.gg/umbraco) and on Twitter: [Umbraco HQ](https://twitter.com/umbraco), [Release Updates](https://twitter.com/umbracoproject), [#umbraco](https://twitter.com/hashtag/umbraco)
## Get help
If you need a bit of feedback while building your Umbraco projects, we are [chatty on Discord](https://discord.umbraco.com). Our Discord server serves both a social space but also has channels for questions and answers. Feel free to lurk or join in with your own questions. Or just post your daily Wordle score, up to you!
## Looking to contribute back to Umbraco?
## Contributing
You came to the right place! Our GitHub repository is available for all kinds of contributions:
- [Create a bug report](https://github.com/umbraco/Umbraco-CMS/issues)
- [Create a feature request](https://github.com/umbraco/Umbraco-CMS/discussions)
Umbraco is contribution-focused and community-driven. If you want to contribute back to the Umbraco source code, please check out our [guide to contributing](CONTRIBUTING.md).
### Tip: You should not run Umbraco from source code found here. Umbraco is extremely extensible and can do whatever you need. Instead, [install Umbraco as noted above](#looking-to-install-umbraco) and then [extend it any way you want to](https://docs.umbraco.com/umbraco-cms/extending/).
# condition: or(eq(stageDependencies.Build.A.outputs['build.NBGV_PublicRelease'], 'True'), ${{parameters.sqlServerIntegrationTests}}) # Outcommented due to timeouts
/// Generates a sanitized and consistent schema identifier for a given type following Umbraco's schema id naming conventions.
/// </summary>
protectedstringUmbracoSchemaId(Typetype)
{
varname=SanitizedTypeName(type);
name=HandleGenerics(name,type);
if(name.EndsWith("Model")==false)
{
// because some models names clash with common classes in TypeScript (i.e. Document),
// we need to add a "Model" postfix to all models
name=$"{name}Model";
}
// make absolutely sure we don't pass any invalid named by removing all non-word chars
returnRegex.Replace(name,@"[^\w]",string.Empty);
}
privatestringSanitizedTypeName(Typet)=>t.Name
// first grab the "non-generic" part of any generic type name (i.e. "PagedViewModel`1" becomes "PagedViewModel")
.Split('`').First()
// then remove the "ViewModel" postfix from type names
.TrimEnd("ViewModel");
privatestringHandleGenerics(stringname,Typetype)
{
if(!type.IsGenericType)
{
returnname;
}
// use attribute custom name or append the generic type names, ultimately turning i.e. "PagedViewModel<RelationItemViewModel>" into "PagedRelationItem"
// Ensure all types that implements the IOpenApiDiscriminator have a $type property in the OpenApi schema with the default value (The class name) that is expected by the server
if(Uri.TryCreate(model.ReturnUrl,UriKind.Relative,out_)isfalse)// Needs to test for relative and not absolute, as /whatever/ is an absolute path on linux
{
returnBadRequest("ReturnUrl must be a relative path.");
.WithTitle("Collection data type could not be found")
.WithDetail($"No collection data type was found for the corresponding {type} type. Ensure that the default and/or a custom collection data types exists")
varordering=Ordering.By(nameof(Infrastructure.Persistence.Dtos.NodeDto.NodeObjectType),Direction.Descending);// We need to override to change direction
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.