Commit Graph

12795 Commits

Author SHA1 Message Date
Kenn Jacobsen
9c6e3ff928 Elements level property cache should cache by variation (#18080) 2025-01-29 12:00:01 +01:00
Andy Butland
28019e47a9 Added a check that we have a route before attempting to include it in the other URLs for a published document. (#18135) 2025-01-28 10:11:25 +01:00
Sven Geusens
f96ac32b2b Merge branch 'v14/dev' into v15/dev
# Conflicts:
#	Directory.Packages.props
#	src/Umbraco.Cms.Api.Common/DependencyInjection/UmbracoBuilderAuthExtensions.cs
#	src/Umbraco.Cms.Api.Delivery/DependencyInjection/UmbracoBuilderExtensions.cs
#	src/Umbraco.Cms.Api.Delivery/Querying/Selectors/AncestorsSelector.cs
#	src/Umbraco.Cms.Api.Management/OpenApi.json
#	src/Umbraco.Infrastructure/Examine/ExamineIndexRebuilder.cs
#	src/Umbraco.Infrastructure/PropertyEditors/MediaPicker3PropertyEditor.cs
#	src/Umbraco.PublishedCache.NuCache/ContentStore.cs
#	tests/Directory.Packages.props
2025-01-21 10:17:46 +01:00
Kenn Jacobsen
56c0aebd76 Add NoopCurrentMemberClaimsProvider so Umbraco can boot without the Delivery API enabled (#18049) 2025-01-21 09:12:20 +01:00
Kenn Jacobsen
2a73cfefbb Partial revert of #17854 (#18040) 2025-01-21 08:48:57 +01:00
Sven Geusens
4b9771c0eb Merge branch 'v13/dev' into v14/dev
# Conflicts:
#	Directory.Packages.props
#	build/azure-pipelines.yml
#	src/Umbraco.Cms.Api.Common/DependencyInjection/UmbracoBuilderAuthExtensions.cs
#	src/Umbraco.Cms.Persistence.EFCore/Locking/SqlServerEFCoreDistributedLockingMechanism.cs
#	src/Umbraco.Core/Configuration/Models/RichTextEditorSettings.cs
#	src/Umbraco.Core/EmbeddedResources/Lang/da.xml
#	src/Umbraco.Core/EmbeddedResources/Lang/en.xml
#	src/Umbraco.Core/EmbeddedResources/Lang/en_us.xml
#	src/Umbraco.Core/Services/ContentService.cs
#	src/Umbraco.Web.BackOffice/Authorization/ContentPermissionsQueryStringHandler.cs
#	src/Umbraco.Web.BackOffice/Authorization/ContentPermissionsResourceHandler.cs
#	src/Umbraco.Web.BackOffice/Controllers/ContentController.cs
#	src/Umbraco.Web.BackOffice/Controllers/ExamineManagementController.cs
#	src/Umbraco.Web.BackOffice/Controllers/MediaController.cs
#	src/Umbraco.Web.BackOffice/Trees/StaticFilesTreeController.cs
#	src/Umbraco.Web.UI.Client/package-lock.json
#	src/Umbraco.Web.UI.Client/package.json
#	src/Umbraco.Web.UI.Client/src/common/directives/components/buttons/umbbuttongroup.directive.js
#	src/Umbraco.Web.UI.Client/src/common/directives/components/content/edit.controller.js
#	src/Umbraco.Web.UI.Client/src/common/filters/simpleMarkdown.filter.js
#	src/Umbraco.Web.UI.Client/src/common/filters/simpleMarkdown.filter.js.js
#	src/Umbraco.Web.UI.Client/src/common/services/tinymce.service.js
#	src/Umbraco.Web.UI.Client/src/less/components/umb-group-builder.less
#	src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/mediaentryeditor/mediaentryeditor.less
#	src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/propertysettings/propertysettings.html
#	src/Umbraco.Web.UI.Client/src/views/common/overlays/ysod/ysod.controller.js
#	src/Umbraco.Web.UI.Client/src/views/common/overlays/ysod/ysod.html
#	src/Umbraco.Web.UI.Client/src/views/components/buttons/umb-button-group.html
#	src/Umbraco.Web.UI.Client/src/views/content/overlays/sendtopublish.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/blockgrid/prevalue/blockgrid.blockconfiguration.overlay.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/blockgrid/prevalue/blockgrid.blockconfiguration.overlay.html
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/blocklist/prevalue/blocklist.blockconfiguration.overlay.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/blocklist/prevalue/blocklist.blockconfiguration.overlay.html
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/rte/rte.component.js
#	src/Umbraco.Web.UI.Client~HEAD
#	src/Umbraco.Web.UI.Login/package-lock.json
#	src/Umbraco.Web.UI.Login/package.json
#	tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/BlockGridEditor/Content/blockGridEditorContent.spec.ts
#	tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ContentServiceNotificationTests.cs
#	tests/Umbraco.Tests.UnitTests/Umbraco.Web.BackOffice/Controllers/ContentControllerTests.cs
#	tools/Umbraco.JsonSchema/UmbracoCmsSchema.cs
#	version.json
2025-01-21 08:47:38 +01:00
Kenn Jacobsen
c00e86e0ea Fix various routing and preview issues for the Delivery API in V15 (#18036)
* Fix various routing and preview issues for the Delivery API in V15

* Fix breaking change in ctor

* Fix ambigious constructors

---------

Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
2025-01-20 22:27:10 +01:00
Nikolaj Geisle
31fbd29879 Merge remote-tracking branch 'origin/contrib' into v15/dev 2025-01-20 21:12:23 +01:00
Ronald Barendse
839b6816f2 Merge commit from fork
* 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
2025-01-20 14:54:14 +01:00
Nikolaj Geisle
51823a7671 v15: Remove old values from checkboxlist (#17936)
* Remove old values from checkboxlist

* Add validator for MultipleValueEditor

* chore: adds mocked "published" handler

* chore(mock): adds multiple dropdown

* chore(mock): adds dropdown multiple to 'all properties'

* adds localization

* feat: adds support to show invalid/legacy options

* feat: show invalid/legacy options to let the user decide what to do

* Add validator for radio buttons

---------

Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
2025-01-20 13:39:02 +01:00
Andy Butland
171ada26cc Allow for filtering of document type allowed children and allowed at root when creating new content. (#18029)
* Creates IContentTypeFilterService with a "no-op" implementation for filtering the content types available for selection at root and as children.

* Rework to collection so packages and implementors can stack filters if they need to.
2025-01-20 12:26:07 +01:00
Henrik
ed08923b46 Use the new more efficient .NET 9 Lock type (#18015) 2025-01-20 11:41:13 +01:00
Kenn Jacobsen
0d61890999 First content item at root should not have special meaning when routing (#18016) 2025-01-20 07:26:38 +01:00
Sven Geusens
ee727c43e1 Added localizations for composite key of missing New (media) Audit item (#17981) 2025-01-14 21:08:47 +01:00
Mole
44c30807fa Handle invariant domains (#17937) 2025-01-13 08:52:43 +01:00
Mole
aaad9c0b23 V15: Notification Hub (#17776)
* Initial stab at how this could look

* Authorization PoC wip

* Add connection manager

* Add DI to its own class

* Use enum instead of string

* Use groups

* Refactor group management into its own service

* Update a users groups when it's saved

* Add saved events

* Wire up deleted notifications

* Ensure update date and create date is the same

* Cleanup

* Minor cleanup

* Remove unusued usings

* Move route to constant

* Add docstrings to server event router

* Fix and suppress warnings

* Refactor to authorizer pattern

* Update EventType

* Remove unused enums

* Add trashed events

* Notify current user that they've been updated

* Add broadcast

We don't need it, but seems like a thing that a server event router should be able to do.

* Add ServerEventRouterTests

* Add ServerEventUserManagerTests

* Use TimeProvider

* Remove principal null check

* Don't assign event type

* Minor cleanup

* Rename AuthorizedEventSources

* Change permission for relations

* Exctract event authorization into its own service

* Add some tests

* Update name

* Add forgotten file

* Rmember to add to DI
2025-01-10 09:36:44 +01:00
Nikolaj Geisle
53a5813189 V15: Dont create invalid media (#17534)
* 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>
2025-01-09 12:21:54 +01:00
Kenn Jacobsen
0565eeebd5 Do not allow editing read-only properties (#17915) 2025-01-09 06:59:32 +01:00
Andy Butland
bfff224c3e Display variant selection on unpublish only if the document is variant (#17893)
* Display variant selection on unpublish only if the document is variant.

* Allow for publish and unpublish of variant and invariant content.

* Added integration tests for amends to ContentPublishingService.

* Fixed assert.

* Fixed assert and used consistent language codes.

* Further integration tests.
2025-01-08 15:07:56 +01:00
Sven Geusens
e425f0ba41 Improve document schedule (#17535)
* Expose schedule date for on document get endpoint

* typo fix

* stupid stuff

* Enable content scheduling features in the publishing service

* Replace obsoleted non async calls

* Add content scheduling test

* Publush and schedule combination test

* More invariantCulture notation allignment and more tests

* Link up api with updated document scheduling

* More invariant culture notation allignment

* Fix breaking change

* Return expected status codes.

* Fix constructor

* Forward Default implementation to actual core implementation

Co-authored-by: Bjarke Berg <mail@bergmania.dk>

* Forward default implementation to core implementation

Co-authored-by: Bjarke Berg <mail@bergmania.dk>

* Make content with scheduling retrieval scope safe

---------

Co-authored-by: Bjarke Berg <mail@bergmania.dk>
2025-01-08 12:39:34 +01:00
Andy Butland
413398afc6 Use data type configuration to determine default value for empty toggle and slider property values (#17854)
* Use data type configuration to determine default value for empty toggle property values.

* Added/updated unit tests.

* Fixed failing integration tests.

* Applied similar default value display for the slider property editor and aligned implementation of true/false with this.

* Fixed unit tests.

* Removed "duplicate" JsonPropertyName attributes and added a custom TypeInfoResolver for data type configuration so we can re-use the existing ConfigurationField attributes.

* Minor cleanup

---------

Co-authored-by: nikolajlauridsen <nikolajlauridsen@protonmail.ch>
2025-01-08 11:42:13 +01:00
Nikolaj Geisle
b7f424756c V15: Dont create invalid media (#17534)
* 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>
2025-01-08 10:50:53 +01:00
Andy Butland
e7ee7c63c3 Fix to GetCultureFromDomains extensions following changes to routing and published content cache (#17884) 2025-01-08 10:29:06 +01:00
Nikolaj Geisle
e5e5e8cb11 V15: Warn when content is unroutable (#17837)
* Add notification handler

* Add IsContentPublished that bypasses caching

* Add clarifying comment

* Refactor, to never hit the db

* Remove old comment

* Don't add warnings if disabled

* Dedicated configuration option to suppress unroutable content warnings

---------

Co-authored-by: kjac <kja@umbraco.dk>
2025-01-08 09:14:14 +01:00
Andy Butland
376c496597 Ensure sort order is used when rendering the list of allowed documents that can be created under an item in the content section, and allowed for sorting of selected allowed content types (#17875)
* Ensure sort order is used when rendering the list of allowed documents that can be created under an item in the content section.

* Fixed issue preventing sorting of the allowed content types.
2025-01-07 14:01:11 +01:00
Nikolaj Geisle
5482f6b5ca Order by sortorder (#17898) 2025-01-07 11:33:24 +01:00
Sven Geusens
1cd9e3e83f Fix variant invariancy with limited language (#17707)
* Add a way to configure IUmbracobuilder on a per testcase basis

* New logic for invariantVariantMerging

* bugfix

* Undo formatting changes

* Undo more automatic formatting

* Last automatic formatting correction

* Cleanup ConfigureBuilderAttribute

* Made propertyEditor tests internal
2025-01-06 14:58:00 +01:00
Kenn Jacobsen
7a3862e926 Support segments from querystring in preview (#17819) 2024-12-17 12:37:49 +01:00
Elitsa Marinovska
32d0cb477e V14: Adding the ability to conditionally serialize version bound properties for the Delivery API (#16731)
* 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
2024-12-16 11:34:55 +01:00
Jacob Overgaard
3774dbe38c Merge remote-tracking branch 'origin/v13/contrib' into v13/dev 2024-12-13 09:56:46 +01:00
Sven Geusens
cd25c9a318 Merge branch 'release/15.1.1' into v15/dev
# Conflicts:
#	src/Umbraco.Core/Extensions/PublishedContentExtensions.cs
#	src/Umbraco.Web.UI.Client/package-lock.json
#	src/Umbraco.Web.UI.Client/package.json
#	version.json
2024-12-12 16:36:45 +01:00
Kenn Jacobsen
c26b45db59 Don't overwrite ancestor configurations for public access (#17797)
* Don't overwrite ancestor configurations for public access (#17709)

* Fix spacings
2024-12-12 10:46:25 +01:00
Nikolaj Geisle
64982a1afd Check if language has changed when updating domains (#17790) 2024-12-12 08:47:35 +01:00
Bjarke Berg
c22dc2f12e Fixes issue found in tests 2024-12-11 18:40:46 +01:00
Nikolaj Geisle
d6f493737a Fix unit test 2024-12-11 17:48:11 +01:00
Bjarke Berg
721eee27c7 Handle empty string in published status service 2024-12-11 15:50:00 +01:00
Zeegaan
0928379aeb Fix siblings 2024-12-11 15:12:09 +01:00
Zeegaan
c6a420579e Fix ancestors 2024-12-11 14:56:44 +01:00
Zeegaan
b916490ef3 Fix descendants 2024-12-11 14:04:55 +01:00
Zeegaan
869838db0c Refactor .Children to use PublishStatusQuery 2024-12-11 11:16:11 +01:00
Nikolaj Geisle
82e58eae3e V14: cherry pick #17656 (#17763)
* V15: Fix webhook RTE serialization (#17656)

* Make base type resolver class

* Add new webhook serializer

* fix comment

* Update src/Umbraco.Infrastructure/Serialization/ContentJsonTypeResolverBase.cs

Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>

* Update src/Umbraco.Core/Services/WebhookRequestService.cs

---------

Co-authored-by: Elitsa <elm@umbraco.dk>
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
(cherry picked from commit 6f081785e6)

* Add back missing usings
2024-12-09 16:09:54 +01:00
Nikolaj Geisle
6f081785e6 V15: Fix webhook RTE serialization (#17656)
* Make base type resolver class

* Add new webhook serializer

* fix comment

* Update src/Umbraco.Infrastructure/Serialization/ContentJsonTypeResolverBase.cs

Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>

* Update src/Umbraco.Core/Services/WebhookRequestService.cs

---------

Co-authored-by: Elitsa <elm@umbraco.dk>
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
2024-12-09 14:20:19 +01:00
Kenn Jacobsen
404a62aa0b Add (un)publishing details to TreeChange notifications (#17757) 2024-12-09 11:36:48 +01:00
Kenn Jacobsen
2d9cfc880b Warn about un-routable content at publish time (#17705) 2024-12-09 11:07:32 +01:00
Nikolaj Geisle
0617182160 Use init instead of rebuild when refreshing cache (#17739) 2024-12-05 20:56:54 +01:00
Bjarke Berg
88f97261ad Explicit endpoints returning the Login and BackOffice logos and background (#17696)
* Created explicit endpoints returning the login image instead of leaking the configuration. Thereby some hardcoded values have been changed, but the url will now be the same every time.

* Remove magic concatenation for action lookup

* remove unused backoffice asset (login.jpg)

* remove unused umbraco logo assets

* add manifest handlers

* add mock handlers for the `security/back-office/graphics` endpoints to the backoffice

* add mock handlers for the `security/back-office/graphics` endpoints to the login screen

* chore: update msw service worker

* feat: make static assets available for consumption without copying them from the login project

* update consts with new location for static assets

* feat: prefix login assets with `login-`

* remove unused asset `logo.png`

* feat: introduce a `/back-office/graphics/logo` endpoint to serve the logo "mark" used throughout all applications

* feat: use the alternative logo for disabled javascript warning

* feat: use the umbraco logo on the NoNodes.cshtml page

* Do not expose the new readme in the package

* feat: add logo.svg

* feat: add `umb-app-logo` element to display the backoffice logo including server url and appropriate tags

* feat: use the new `umb-app-logo` element relevant places and make sure to add the serverUrl in front of other graphics

* feat: move logic to connectedCallback to prevent error from non-existing element

* revert usage of HideBackOfficeLogo

* feat: add alt text to logos

* feat: add obsolete message and a hint to use BackOfficeLogo insted

---------

Co-authored-by: Sven Geusens <sge@umbraco.dk>
Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
2024-12-05 12:21:33 +01:00
Nikolaj Geisle
f048cfe62d v14: DecimalConverter - add check for integer (#17679)
* Add check for integer

* Fix typo

---------

Co-authored-by: Elitsa <elm@umbraco.dk>
2024-12-04 15:18:12 +01:00
Sven Geusens
21e3518a69 Fix copy document with descendants onto self (#17661)
* Filter self out of descedants for self onto self copy

* Optimized code

---------

Co-authored-by: Bjarke Berg <mail@bergmania.dk>
2024-12-01 13:02:47 +01:00
Elitsa Marinovska
f7d719af06 V15: Utilizing content type filtering for navigation data instead of .OfType<T>() (#17639)
* Implement GetContentTypeAliasForType which will replace the need for .OfType<T>();

* Refactor EnumerateAncestorsOrSelfInternal to be generic and extracting checks

* Add types to implementation referencing the old non-generic method

* Using

* Replace Ancestors.OfType<T> implementation

* Refactor EnumerateDescendantsOrSelfInternal to be generic

* Fixing references by adding IPublishedContent type param

* Cleanup + removing unused method

* Replace Descendants.OfType<T> implementation

* Remove unnecessary enumeration

* Updating Children.OfType<T>() implementation

* Adding correct types

* Fixing SiblingsAndSelf implementation

* Refactor TryYieldSelfOfType

* Remove nested checks

* Add comments and retrieval of content type alias from T in the private helper methods

* Simplify implementation based on review comments

* Add case when you get all root keys without a type

* Refactoring

* Renaming + review comments

* Rewrite SiblingsAndSelf

---------

Co-authored-by: kjac <kja@umbraco.dk>
2024-11-28 17:18:18 +01:00
Niels Lyngsø
3dbb626cfb Merge branch 'release/15.1' into v15/dev 2024-11-27 19:39:25 +01:00