* 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>
* Backport use of thread delay over sleep and handle dispose in FileSystemMainDomLock (from PRs #18119 and #18147)
* Applied suggestion from code review.
* Add validation to prevent update of a user or member to an invalid username.
* Avoid password manager updates of user name field on user details screen.
* init
* Aligned default values on security settings.
* Added validator for security settings.
* Provide default implementation for get members by email.
* Refactored constructor of MemberController.
* Validate on unique member email only when configured to do so.
* Further code tidy and use of DI in constructor.
* Used new constructor in tests.
* Add unit test for modified behaviour.
* Removed validator for security settings (it's not necessary, I got confused with users and members).
* Spelling.
---------
Co-authored-by: Andy Butland <abutland73@gmail.com>
* Add CacheNullValues option to RepositoryCachePolicy
* Cache null values in DictionaryByKeyRepository
* Fixed issue with nullable reference.
* Updated logic for caching of null values.
* Update src/Umbraco.Infrastructure/Cache/DefaultRepositoryCachePolicy.cs
Co-authored-by: Sven Geusens <geusens@gmail.com>
* Made the NullValueRepresentation overwritable in a generic manner
* Improve generic NullValueCachePolicyResolver
* Revert Commits and clarify logic with comment
This reverts commit 8befb43792 "Improve generic NullValueCachePolicyResolver"
Also reverts 8adf0a2 - Made the NullValueRepresentation overwritable in a generic manner
And 8adf0a2 - Made the NullValueRepresentation overwritable in a generic manner
* Update src/Umbraco.Infrastructure/Cache/DefaultRepositoryCachePolicy.cs
---------
Co-authored-by: Andy Butland <abutland73@gmail.com>
Co-authored-by: Sven Geusens <geusens@gmail.com>
Co-authored-by: Sven Geusens <sge@umbraco.dk>
* Set Smidge cachebuster type
* Amend exception and fix typo
* Minor tweak to comment and exception message.
---------
Co-authored-by: Simon Hartfield <simon.hartfield@googlemail.com>
Co-authored-by: Andy Butland <abutland73@gmail.com>
* Flow additional identities to new principal
* Add extension to more easily get member identity
* Ensure the member is used instead of the backoffice user in `MemberManager`
* Update snippet
* Fix the comment that I broke
* Update src/Umbraco.Web.Common/Extensions/MemberClaimsPrincipalExtensions.cs
Co-authored-by: Andy Butland <abutland73@gmail.com>
---------
Co-authored-by: Andy Butland <abutland73@gmail.com>
* Only fetch single commit
* Hopefully fixes Nerdbank.GitVersioning.GitException: Shallow clone lacks the objects required to calculate version height. Use full clones or clones with a history at least as deep as the last version height resetting change.
* Do not checkout again
* More test pipeline
* Another attempt
* yet another attempt
* more attempts
* Revert "more attempts"
This reverts commit 5694d97ba6.
* Test without building backoffice and login explicitly
* Fix mem leak in integration tests
* Fixes sqlserver lock test
# Conflicts:
# build/azure-pipelines.yml
* 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 save invalid media
* Revert "Don't save invalid media"
This reverts commit c4b6acf542.
* Still allow save, but show validation error, not popup error
* Add clarifying comment
* 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>
* Refactor to use IWebhostEnvironment for wwwroot files.
* Obsolete ctor
* Add ActivatorUtiiliesConstructor
* Refactor logic to include folders
* Fix so we can see files in wwwroot/App_Plugins
* Cosmetic: Use invariant comparison for the "umbraco" folder".
---------
Co-authored-by: kjac <kja@umbraco.dk>
* Refactor to use IWebhostEnvironment for wwwroot files.
* Obsolete ctor
* Add ActivatorUtiiliesConstructor
* Refactor logic to include folders
* Fix so we can see files in wwwroot/App_Plugins
* Cosmetic: Use invariant comparison for the "umbraco" folder".
---------
Co-authored-by: kjac <kja@umbraco.dk>
* 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
* Update nuget packages
* Cherry pick fixes from v15
* Fixed: Projects that use central package version management should not define the version on the PackageReference items but on the PackageVersion items
* rollback update in tool
* Revert #14234
* Make the boot failure message more descriptive when unable to connect to DB
* Update src/Umbraco.Infrastructure/Runtime/RuntimeState.cs
Co-authored-by: Ronald Barendse <ronald@barend.se>
* Revert changes
* Obsolete InstallMissingDatabase from V16
---------
Co-authored-by: Ronald Barendse <ronald@barend.se>
* Dropzone, upload complete callback with processed file array
* Media card: cosmetic fix for image border-radius
The image's square corners were poking out.
* 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)
* Distinguish between default value and initial zero
* Update special value comment documentation
* Redid solution with dirty/new entity tracking
* rework copy branch sortorder fix
* Change == false to is false
---------
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
Add missing backoffice languages as properties etc. are translated via translation section (e.g. with "#Backoffice Settings"). At the moment the swiss languages always need to be added via the umbraco/Config folder.
* 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
* build(deps): update @umbraco-ui/uui from 1.7.1 to 1.11.0
* fix: umb-login-element no attributes
Cherry-picked a fix from V14 where the custom login input component was no longer needed, which was fixed because it errors out. This simplifies the login form.
* cherry-pick code to handle 'enter' click from v14
* 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
* Add ContentCache test
* Use SemaphoreSlim as write lock
* Apply lock imrpovements to SnapDictionary
* Obsolete unused MonitorLock
(cherry picked from commit c3db3457e7)
* 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
* Added a custom RichTextRequiredValidator, to check that the empty richtext object (still with json) can be required or not. We are now testing the markdown needs to have a value
* Fixed namespaced and moved back wrong class
* Cleanup
* 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
* Find the constraint name based on table,column,type name instead of hardcoding it
* removed unnecesary using
* Check constraint rename seperatly from column rename
* 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>
* 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.
(cherry picked from commit 55f9b09ab7)
* Make missing languages a non blocker for usergroup retrieval
* Add logging
* Update obsolete message
---------
Co-authored-by: Zeegaan <skrivdetud@gmail.com>
* Improve migration performance
* Fix PR review comments
* Revert tags migration for sql lite as the optimized sql doesn't work properly and sqlLite datasets should not be large anyway
* 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
* Removing override of OnTransformingIndexValues from DeliveryApiContentIndex
* Making sure that TransformingIndexValues event is raised for DeliveryApiContentIndex without performing the special index value transformations
* Review suggestion
* 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
* Adds url support for x.com/.*/status/.*
* Updated regex
* Obsoleting Twitter as OEmbedProvider
* Introducing X as its new alternative
* Adding X and removing Twitter from EmbedProvidersCollection
* Typo
* 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>
* Do not execute query if no macros found
* Request cache the permission lookup
* Unbreak change by adding obsolete ctor
* Clean up
* Wrap indexing for delivery API in a scope
* Do not ask options every time for the timeout, instead listen for updates
* Lookup content types once instead of one by one
* Use TryGetValue instead
* Do a distinct on user ids before building index, to avoid issue with more than 2100 parameters
* Don't map ContentDto (it's unused)
* Introduce request bound block editor element cache
---------
Co-authored-by: kjac <kja@umbraco.dk>
* 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>
* 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)
* 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
* 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>
* 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
* 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>
* 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
* 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
* Ported over #15928 changes for 13.3 RC
* Use GetOrAdd()
* Lock dictionary initialization
---------
Co-authored-by: Jason Elkin <jasonelkin86@gmail.com>
* 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>
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
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>
* Apply focusLockService to TourStepDirective
Apply focusLockService to TourStepDirective in order to ensure that
non-modal page contents are inert and do not interfere with focus on
modal dialog with regards to screen reading technologies.
* Add properties to umb-tour.html.
Add properties to umb-tour html page to ensure that it aligns with modal
dialog best practices.
* Add dialog properties to Umbraco tour .html files.
Add properties relating to dialog and accessibility to the Umbraco tour
.html files, including aria-label, role, and tab index.
* 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>
A new check for ContentVariation.Nothing is necessary when copying from
documents to ensure that if there is no content variation as defined by
the Nothing property, values are still copied even if variation is not
supported since the content itself will not vary.
* 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
* Prevent user populated link names being removed
When selecting a node in a link picker, the "name" (Link title) field is always overridden with the selected node's name.
This change prevents the field from being overridden if it is user populated.
* Don't update for media either
If there is already a name, don't update when selecting media
* Deselect current node
When selecting media, deselect current node if there is one
* Change to suggested functionality
Update to more elaborate functionality which will always use the *current* node name. i.e If you change the node name then the link picker name changes also.
* Reapply changes
Repply changes after merge from contrib branch
* Use IsCulturePublished() and only track node name
* Fallback to node name in preview
* Fix setting media name
---------
Co-authored-by: Ronald Barendse <ronald@barend.se>
* 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
This ensures keys are correctly assumed to be unique => safe for dictionary usage
Co-authored-by: Sven Geusens <sge@umbraco.dk>
(cherry picked from commit e267b41575)
* 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
* Added ExecuteNonQuery(DbCommand command) on database to ensure we call OnExecutingCommand and OnExecutedCommand when executing DbCommands
* Added Cache Instructions lock, to avoid deadlocks
* Optimized read locks for nucache when only one content type is rebuilt
* Optimized the SqlServer locks, so only one command is executed (and thereby roundtrip) per lock instead of two
* Avoid breaking changes
* Cosmetic changes
* Take locks if everything is rebuild
* Use same lock in scopes, to avoid potential deadlocks between the two
* Use eager locks in PublishedSnapshotService.cs
* Added timeouts to some of the application locks
* Revert "Use eager locks in PublishedSnapshotService.cs"
This reverts commit 01873aae97.
* Revert "Added Cache Instructions lock, to avoid deadlocks"
This reverts commit e3fca7c12a.
* Use single readlock call to lock many
* Use eager locks for reads
* Eager write locks
* Ignore test of lazy locks
* Unique timeout exception messages
---------
Co-authored-by: kjac <kja@umbraco.dk>
(cherry picked from commit 2c23e67c65)
* Added ExecuteNonQuery(DbCommand command) on database to ensure we call OnExecutingCommand and OnExecutedCommand when executing DbCommands
* Added Cache Instructions lock, to avoid deadlocks
* Optimized read locks for nucache when only one content type is rebuilt
* Optimized the SqlServer locks, so only one command is executed (and thereby roundtrip) per lock instead of two
* Avoid breaking changes
* Cosmetic changes
* Take locks if everything is rebuild
* Use same lock in scopes, to avoid potential deadlocks between the two
* Use eager locks in PublishedSnapshotService.cs
* Added timeouts to some of the application locks
* Revert "Use eager locks in PublishedSnapshotService.cs"
This reverts commit 01873aae97.
* Revert "Added Cache Instructions lock, to avoid deadlocks"
This reverts commit e3fca7c12a.
* Use single readlock call to lock many
* Use eager locks for reads
* Eager write locks
* Ignore test of lazy locks
* Unique timeout exception messages
---------
Co-authored-by: kjac <kja@umbraco.dk>
(cherry picked from commit 2c23e67c65)
* Added ExecuteNonQuery(DbCommand command) on database to ensure we call OnExecutingCommand and OnExecutedCommand when executing DbCommands
* Added Cache Instructions lock, to avoid deadlocks
* Optimized read locks for nucache when only one content type is rebuilt
* Optimized the SqlServer locks, so only one command is executed (and thereby roundtrip) per lock instead of two
* Avoid breaking changes
* Cosmetic changes
* Take locks if everything is rebuild
* Use same lock in scopes, to avoid potential deadlocks between the two
* Use eager locks in PublishedSnapshotService.cs
* Added timeouts to some of the application locks
* Revert "Use eager locks in PublishedSnapshotService.cs"
This reverts commit 01873aae97.
* Revert "Added Cache Instructions lock, to avoid deadlocks"
This reverts commit e3fca7c12a.
* Use single readlock call to lock many
* Use eager locks for reads
* Eager write locks
* Ignore test of lazy locks
* Unique timeout exception messages
---------
Co-authored-by: kjac <kja@umbraco.dk>
(cherry picked from commit 2c23e67c65)
* 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
* Added ExecuteNonQuery(DbCommand command) on database to ensure we call OnExecutingCommand and OnExecutedCommand when executing DbCommands
* Added Cache Instructions lock, to avoid deadlocks
* Optimized read locks for nucache when only one content type is rebuilt
* Optimized the SqlServer locks, so only one command is executed (and thereby roundtrip) per lock instead of two
* Avoid breaking changes
* Cosmetic changes
* Take locks if everything is rebuild
* Use same lock in scopes, to avoid potential deadlocks between the two
* Use eager locks in PublishedSnapshotService.cs
* Added timeouts to some of the application locks
* Revert "Use eager locks in PublishedSnapshotService.cs"
This reverts commit 01873aae97.
* Revert "Added Cache Instructions lock, to avoid deadlocks"
This reverts commit e3fca7c12a.
* Use single readlock call to lock many
* Use eager locks for reads
* Eager write locks
* Ignore test of lazy locks
* Unique timeout exception messages
---------
Co-authored-by: kjac <kja@umbraco.dk>
* 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>
Default behavior:
If you have only one available module for an area Umbraco will
open a dialog for adding the module. If you have more than one
module you will get a dialog to choose a module and that dialog
will have a Paste option in the top right corner.
New behavior:
If there is a module in the clipboard, Umbraco will open a dialog
with the Paste option even thou there is only one available module
in the area. In other cases, it will work as usual.
Reported issue: https://github.com/umbraco/Umbraco-CMS/issues/15755
* 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>
When publishing, if the selected page does not yet have a page created,
handle the FailedPublishNothingToPublish error so that the user is not
presented with an exception. A warning is shown to the user that some
languages failed to publish due to nothing to publish and to check that
a page has been created for selected languages. Additionally fixed a
validation issue where publish would always succeed if all languages
were selected.
Issue: 15352
* 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
* Introduced IDataTypeConfigurationCache
* Applied IDataTypeConfigurationCache to Property Editors and display mapping
* Invalidate new cache trough DataTypeConfigurationCacheRefresher
* Improve IDatatype service to use cached int path when fetching by guid (using idkeymap)
---------
Co-authored-by: Sven Geusens <sge@umbraco.dk>
Co-authored-by: Ronald Barendse <ronald@barend.se>
@@ -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.
### Getting Started: Management API
This branch contains the project for the new Management API as well as the new Backoffice. To get started with the Management API you should:
* Run any of the executables (Umbraco.Web.UI or Umbraco.Web.UI.New)
* Access "/umbraco/swagger" in the browser to see the Swagger interface
* The API lives in the Umbraco.Cms.Api.Management project
### Getting Started: Backoffice
To run the new Backoffice:
* Execute `git submodule init` and then `git submodule update` to get the files into Umbraco.Web.UI.New.Client project
* Run Umbraco.Web.UI.New project
* 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.New.Client folder to clear out any leftover files from older versions.
* If you are going to work on the Backoffice, you can either go to the Umbraco.Web.UI.New.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
### Latest version
* If you want to get the latest changes from the Backoffice repository, run `git submodule update` again which will pull the latest main branch.
### 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.Cms.Core
* Umbraco.Cms.Infrastructure
* Umbraco.Cms.Web.Common
* Umbraco.Web.UI.New
* Umbraco.Web.UI.New.Client
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/).
<!-- Both OpenIddict.AspNetCore, Npoco.SqlServer and Microsoft.EntityFrameworkCore.SqlServer bring in a vulnerable version of Microsoft.IdentityModel.JsonWebTokens -->
# 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"
// use attribute custom name or append the generic type names, ultimately turning i.e. "PagedViewModel<RelationItemViewModel>" into "PagedRelationItem"
<!-- Both OpenIddict.AspNetCore, Npoco.SqlServer and Microsoft.EntityFrameworkCore.SqlServer bring in a vulnerable version of Microsoft.IdentityModel.JsonWebTokens -->
:thrownewInvalidOperationException("Could not retrieve the current member. This method should only ever be invoked when a member has been authorized.");
// 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
@@ -49,6 +59,11 @@ public class BackOfficeLoginController : Controller
model.ReturnUrl=model.UmbracoUrl;
}
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.");
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.