Skip to content

Commit 57c3279

Browse files
committed
Merge branch 'release/15.2' into v15/dev and bump version
# Conflicts: # src/Umbraco.Web.UI.Client/src/packages/user/user/conditions/allow-change-password/manifests.ts # src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/manifests.ts # src/Umbraco.Web.UI.Client/src/packages/user/user/repository/config/constants.ts # src/Umbraco.Web.UI.Client/src/packages/user/user/repository/config/current-user-config.repository.ts # src/Umbraco.Web.UI.Client/src/packages/user/user/repository/config/current-user-config.store.token.ts # src/Umbraco.Web.UI.Client/src/packages/user/user/repository/config/manifests.ts # version.json
2 parents f2944b0 + 41b7696 commit 57c3279

38 files changed

+316
-127
lines changed

src/Umbraco.Cms.Api.Delivery/Querying/QueryOptionBase.cs

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using Microsoft.Extensions.DependencyInjection;
22
using Umbraco.Cms.Core.DeliveryApi;
33
using Umbraco.Cms.Core.DependencyInjection;
4+
using Umbraco.Cms.Core.Models.PublishedContent;
45
using Umbraco.Cms.Core.PublishedCache;
56
using Umbraco.Extensions;
67

@@ -10,8 +11,8 @@ public abstract class QueryOptionBase
1011
{
1112
private readonly IRequestRoutingService _requestRoutingService;
1213
private readonly IRequestPreviewService _requestPreviewService;
13-
private readonly IRequestCultureService _requestCultureService;
1414
private readonly IApiDocumentUrlService _apiDocumentUrlService;
15+
private readonly IVariationContextAccessor _variationContextAccessor;
1516

1617
[Obsolete("Please use the non-obsolete constructor. Will be removed in V17.")]
1718
public QueryOptionBase(
@@ -20,8 +21,8 @@ public QueryOptionBase(
2021
: this(
2122
requestRoutingService,
2223
StaticServiceProvider.Instance.GetRequiredService<IRequestPreviewService>(),
23-
StaticServiceProvider.Instance.GetRequiredService<IRequestCultureService>(),
24-
StaticServiceProvider.Instance.GetRequiredService<IApiDocumentUrlService>())
24+
StaticServiceProvider.Instance.GetRequiredService<IApiDocumentUrlService>(),
25+
StaticServiceProvider.Instance.GetRequiredService<IVariationContextAccessor>())
2526
{
2627
}
2728

@@ -31,21 +32,22 @@ public QueryOptionBase(
3132
IRequestRoutingService requestRoutingService,
3233
IRequestPreviewService requestPreviewService,
3334
IRequestCultureService requestCultureService,
34-
IApiDocumentUrlService apiDocumentUrlService)
35-
: this(requestRoutingService, requestPreviewService, requestCultureService, apiDocumentUrlService)
35+
IApiDocumentUrlService apiDocumentUrlService,
36+
IVariationContextAccessor variationContextAccessor)
37+
: this(requestRoutingService, requestPreviewService, apiDocumentUrlService, variationContextAccessor)
3638
{
3739
}
3840

3941
public QueryOptionBase(
4042
IRequestRoutingService requestRoutingService,
4143
IRequestPreviewService requestPreviewService,
42-
IRequestCultureService requestCultureService,
43-
IApiDocumentUrlService apiDocumentUrlService)
44+
IApiDocumentUrlService apiDocumentUrlService,
45+
IVariationContextAccessor variationContextAccessor)
4446
{
4547
_requestRoutingService = requestRoutingService;
4648
_requestPreviewService = requestPreviewService;
47-
_requestCultureService = requestCultureService;
4849
_apiDocumentUrlService = apiDocumentUrlService;
50+
_variationContextAccessor = variationContextAccessor;
4951
}
5052

5153
protected Guid? GetGuidFromQuery(string queryStringValue)
@@ -64,7 +66,7 @@ public QueryOptionBase(
6466
var contentRoute = _requestRoutingService.GetContentRoute(queryStringValue);
6567
return _apiDocumentUrlService.GetDocumentKeyByRoute(
6668
contentRoute,
67-
_requestCultureService.GetRequestedCulture(),
69+
_variationContextAccessor.VariationContext?.Culture,
6870
_requestPreviewService.IsPreview());
6971
}
7072
}

src/Umbraco.Cms.Api.Delivery/Querying/Selectors/AncestorsSelector.cs

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using Umbraco.Cms.Api.Delivery.Indexing.Selectors;
33
using Umbraco.Cms.Core.DeliveryApi;
44
using Umbraco.Cms.Core.DependencyInjection;
5+
using Umbraco.Cms.Core.Models.PublishedContent;
56
using Umbraco.Cms.Core.PublishedCache;
67
using Umbraco.Cms.Core.Services.Navigation;
78

@@ -20,10 +21,9 @@ public AncestorsSelector(
2021
IRequestPreviewService requestPreviewService)
2122
: this(
2223
requestRoutingService,
23-
StaticServiceProvider.Instance.GetRequiredService<IPublishedContentCache>(),
24-
StaticServiceProvider.Instance.GetRequiredService<IRequestPreviewService>(),
25-
StaticServiceProvider.Instance.GetRequiredService<IRequestCultureService>(),
24+
requestPreviewService,
2625
StaticServiceProvider.Instance.GetRequiredService<IApiDocumentUrlService>(),
26+
StaticServiceProvider.Instance.GetRequiredService<IVariationContextAccessor>(),
2727
navigationQueryService)
2828
{
2929
}
@@ -35,10 +35,9 @@ public AncestorsSelector(
3535
IDocumentNavigationQueryService navigationQueryService)
3636
: this(
3737
requestRoutingService,
38-
StaticServiceProvider.Instance.GetRequiredService<IPublishedContentCache>(),
3938
StaticServiceProvider.Instance.GetRequiredService<IRequestPreviewService>(),
40-
StaticServiceProvider.Instance.GetRequiredService<IRequestCultureService>(),
4139
StaticServiceProvider.Instance.GetRequiredService<IApiDocumentUrlService>(),
40+
StaticServiceProvider.Instance.GetRequiredService<IVariationContextAccessor>(),
4241
navigationQueryService)
4342
{
4443
}
@@ -47,32 +46,31 @@ public AncestorsSelector(
4746
public AncestorsSelector(IPublishedContentCache publishedContentCache, IRequestRoutingService requestRoutingService)
4847
: this(
4948
requestRoutingService,
50-
StaticServiceProvider.Instance.GetRequiredService<IPublishedContentCache>(),
5149
StaticServiceProvider.Instance.GetRequiredService<IRequestPreviewService>(),
52-
StaticServiceProvider.Instance.GetRequiredService<IRequestCultureService>(),
5350
StaticServiceProvider.Instance.GetRequiredService<IApiDocumentUrlService>(),
51+
StaticServiceProvider.Instance.GetRequiredService<IVariationContextAccessor>(),
5452
StaticServiceProvider.Instance.GetRequiredService<IDocumentNavigationQueryService>())
5553
{
5654
}
5755

5856
public AncestorsSelector(
5957
IRequestRoutingService requestRoutingService,
6058
IRequestPreviewService requestPreviewService,
61-
IRequestCultureService requestCultureService,
6259
IApiDocumentUrlService apiDocumentUrlService,
60+
IVariationContextAccessor variationContextAccessor,
6361
IDocumentNavigationQueryService navigationQueryService)
64-
: base(requestRoutingService, requestPreviewService, requestCultureService, apiDocumentUrlService)
62+
: base(requestRoutingService, requestPreviewService, apiDocumentUrlService, variationContextAccessor)
6563
=> _navigationQueryService = navigationQueryService;
6664

6765
[Obsolete("Use the constructor that takes all parameters. Scheduled for removal in V17.")]
6866
public AncestorsSelector(
6967
IRequestRoutingService requestRoutingService,
7068
IPublishedContentCache publishedContentCache,
7169
IRequestPreviewService requestPreviewService,
72-
IRequestCultureService requestCultureService,
7370
IApiDocumentUrlService apiDocumentUrlService,
71+
IVariationContextAccessor variationContextAccessor,
7472
IDocumentNavigationQueryService navigationQueryService)
75-
: this(requestRoutingService, requestPreviewService, requestCultureService, apiDocumentUrlService, navigationQueryService)
73+
: this(requestRoutingService, requestPreviewService, apiDocumentUrlService, variationContextAccessor, navigationQueryService)
7674
{
7775
}
7876

src/Umbraco.Cms.Api.Delivery/Querying/Selectors/ChildrenSelector.cs

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using Umbraco.Cms.Api.Delivery.Indexing.Selectors;
33
using Umbraco.Cms.Core.DeliveryApi;
44
using Umbraco.Cms.Core.DependencyInjection;
5+
using Umbraco.Cms.Core.Models.PublishedContent;
56
using Umbraco.Cms.Core.PublishedCache;
67
using Umbraco.Extensions;
78

@@ -16,8 +17,8 @@ public ChildrenSelector(IPublishedContentCache publishedContentCache, IRequestRo
1617
: this(
1718
requestRoutingService,
1819
StaticServiceProvider.Instance.GetRequiredService<IRequestPreviewService>(),
19-
StaticServiceProvider.Instance.GetRequiredService<IRequestCultureService>(),
20-
StaticServiceProvider.Instance.GetRequiredService<IApiDocumentUrlService>())
20+
StaticServiceProvider.Instance.GetRequiredService<IApiDocumentUrlService>(),
21+
StaticServiceProvider.Instance.GetRequiredService<IVariationContextAccessor>())
2122
{
2223
}
2324

@@ -26,18 +27,18 @@ public ChildrenSelector(
2627
IPublishedContentCache publishedContentCache,
2728
IRequestRoutingService requestRoutingService,
2829
IRequestPreviewService requestPreviewService,
29-
IRequestCultureService requestCultureService,
30-
IApiDocumentUrlService apiDocumentUrlService)
31-
: this(requestRoutingService, requestPreviewService, requestCultureService, apiDocumentUrlService)
30+
IApiDocumentUrlService apiDocumentUrlService,
31+
IVariationContextAccessor variationContextAccessor)
32+
: this(requestRoutingService, requestPreviewService, apiDocumentUrlService, variationContextAccessor)
3233
{
3334
}
3435

3536
public ChildrenSelector(
3637
IRequestRoutingService requestRoutingService,
3738
IRequestPreviewService requestPreviewService,
38-
IRequestCultureService requestCultureService,
39-
IApiDocumentUrlService apiDocumentUrlService)
40-
: base(requestRoutingService, requestPreviewService, requestCultureService, apiDocumentUrlService)
39+
IApiDocumentUrlService apiDocumentUrlService,
40+
IVariationContextAccessor variationContextAccessor)
41+
: base(requestRoutingService, requestPreviewService, apiDocumentUrlService, variationContextAccessor)
4142
{
4243
}
4344

src/Umbraco.Cms.Api.Delivery/Querying/Selectors/DescendantsSelector.cs

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using Umbraco.Cms.Api.Delivery.Indexing.Selectors;
33
using Umbraco.Cms.Core.DeliveryApi;
44
using Umbraco.Cms.Core.DependencyInjection;
5+
using Umbraco.Cms.Core.Models.PublishedContent;
56
using Umbraco.Cms.Core.PublishedCache;
67
using Umbraco.Extensions;
78

@@ -16,8 +17,8 @@ public DescendantsSelector(IPublishedContentCache publishedContentCache, IReques
1617
: this(
1718
requestRoutingService,
1819
StaticServiceProvider.Instance.GetRequiredService<IRequestPreviewService>(),
19-
StaticServiceProvider.Instance.GetRequiredService<IRequestCultureService>(),
20-
StaticServiceProvider.Instance.GetRequiredService<IApiDocumentUrlService>())
20+
StaticServiceProvider.Instance.GetRequiredService<IApiDocumentUrlService>(),
21+
StaticServiceProvider.Instance.GetRequiredService<IVariationContextAccessor>())
2122
{
2223
}
2324

@@ -26,18 +27,18 @@ public DescendantsSelector(
2627
IPublishedContentCache publishedContentCache,
2728
IRequestRoutingService requestRoutingService,
2829
IRequestPreviewService requestPreviewService,
29-
IRequestCultureService requestCultureService,
30-
IApiDocumentUrlService apiDocumentUrlService)
31-
: this(requestRoutingService, requestPreviewService, requestCultureService, apiDocumentUrlService)
30+
IApiDocumentUrlService apiDocumentUrlService,
31+
IVariationContextAccessor variationContextAccessor)
32+
: this(requestRoutingService, requestPreviewService, apiDocumentUrlService, variationContextAccessor)
3233
{
3334
}
3435

3536
public DescendantsSelector(
3637
IRequestRoutingService requestRoutingService,
3738
IRequestPreviewService requestPreviewService,
38-
IRequestCultureService requestCultureService,
39-
IApiDocumentUrlService apiDocumentUrlService)
40-
: base(requestRoutingService, requestPreviewService, requestCultureService, apiDocumentUrlService)
39+
IApiDocumentUrlService apiDocumentUrlService,
40+
IVariationContextAccessor variationContextAccessor)
41+
: base(requestRoutingService, requestPreviewService, apiDocumentUrlService, variationContextAccessor)
4142
{
4243
}
4344

src/Umbraco.Core/DeliveryApi/ApiPublishedContentCache.cs

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ namespace Umbraco.Cms.Core.DeliveryApi;
1212
public sealed class ApiPublishedContentCache : IApiPublishedContentCache
1313
{
1414
private readonly IRequestPreviewService _requestPreviewService;
15-
private readonly IRequestCultureService _requestCultureService;
1615
private readonly IApiDocumentUrlService _apiDocumentUrlService;
1716
private readonly IPublishedContentCache _publishedContentCache;
17+
private readonly IVariationContextAccessor _variationContextAccessor;
1818
private DeliveryApiSettings _deliveryApiSettings;
1919

2020
[Obsolete("Use the non-obsolete constructor. Will be removed in V17.")]
@@ -24,7 +24,12 @@ public ApiPublishedContentCache(
2424
IOptionsMonitor<DeliveryApiSettings> deliveryApiSettings,
2525
IDocumentUrlService documentUrlService,
2626
IPublishedContentCache publishedContentCache)
27-
: this(requestPreviewService, requestCultureService, deliveryApiSettings, StaticServiceProvider.Instance.GetRequiredService<IApiDocumentUrlService>(), publishedContentCache)
27+
: this(
28+
requestPreviewService,
29+
deliveryApiSettings,
30+
StaticServiceProvider.Instance.GetRequiredService<IApiDocumentUrlService>(),
31+
publishedContentCache,
32+
StaticServiceProvider.Instance.GetRequiredService<IVariationContextAccessor>())
2833
{
2934
}
3035

@@ -35,22 +40,23 @@ public ApiPublishedContentCache(
3540
IOptionsMonitor<DeliveryApiSettings> deliveryApiSettings,
3641
IDocumentUrlService documentUrlService,
3742
IApiDocumentUrlService apiDocumentUrlService,
38-
IPublishedContentCache publishedContentCache)
39-
: this(requestPreviewService, requestCultureService, deliveryApiSettings, apiDocumentUrlService, publishedContentCache)
43+
IPublishedContentCache publishedContentCache,
44+
IVariationContextAccessor variationContextAccessor)
45+
: this(requestPreviewService, deliveryApiSettings, apiDocumentUrlService, publishedContentCache, variationContextAccessor)
4046
{
4147
}
4248

4349
public ApiPublishedContentCache(
4450
IRequestPreviewService requestPreviewService,
45-
IRequestCultureService requestCultureService,
4651
IOptionsMonitor<DeliveryApiSettings> deliveryApiSettings,
4752
IApiDocumentUrlService apiDocumentUrlService,
48-
IPublishedContentCache publishedContentCache)
53+
IPublishedContentCache publishedContentCache,
54+
IVariationContextAccessor variationContextAccessor)
4955
{
5056
_requestPreviewService = requestPreviewService;
51-
_requestCultureService = requestCultureService;
5257
_apiDocumentUrlService = apiDocumentUrlService;
5358
_publishedContentCache = publishedContentCache;
59+
_variationContextAccessor = variationContextAccessor;
5460
_deliveryApiSettings = deliveryApiSettings.CurrentValue;
5561
deliveryApiSettings.OnChange(settings => _deliveryApiSettings = settings);
5662
}
@@ -61,7 +67,7 @@ public ApiPublishedContentCache(
6167

6268
Guid? documentKey = _apiDocumentUrlService.GetDocumentKeyByRoute(
6369
route,
64-
_requestCultureService.GetRequestedCulture(),
70+
_variationContextAccessor.VariationContext?.Culture,
6571
_requestPreviewService.IsPreview());
6672

6773
IPublishedContent? content = documentKey.HasValue
@@ -77,7 +83,7 @@ public ApiPublishedContentCache(
7783

7884
Guid? documentKey = _apiDocumentUrlService.GetDocumentKeyByRoute(
7985
route,
80-
_requestCultureService.GetRequestedCulture(),
86+
_variationContextAccessor.VariationContext?.Culture,
8187
_requestPreviewService.IsPreview());
8288

8389
IPublishedContent? content = documentKey.HasValue

src/Umbraco.Core/Models/Blocks/BlockGridLayoutAreaItem.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,10 @@ public BlockGridLayoutAreaItem()
1111

1212
public BlockGridLayoutAreaItem(Guid key)
1313
=> Key = key;
14+
15+
public bool ContainsContent(Guid key)
16+
=> Items.Any(item => item.ReferencesContent(key));
17+
18+
public bool ContainsSetting(Guid key)
19+
=> Items.Any(item => item.ReferencesSetting(key));
1420
}

src/Umbraco.Core/Models/Blocks/BlockGridLayoutItem.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,4 +38,10 @@ public BlockGridLayoutItem(Guid contentKey, Guid settingsKey)
3838
: base(contentKey, settingsKey)
3939
{
4040
}
41+
42+
public override bool ReferencesContent(Guid key)
43+
=> ContentKey == key || Areas.Any(area => area.ContainsContent(key));
44+
45+
public override bool ReferencesSetting(Guid key)
46+
=> SettingsKey == key || Areas.Any(area => area.ContainsSetting(key));
4147
}

src/Umbraco.Core/Models/Blocks/BlockLayoutItemBase.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,4 +81,10 @@ protected BlockLayoutItemBase(Guid contentKey, Guid settingsKey)
8181
SettingsKey = settingsKey;
8282
SettingsUdi = new GuidUdi(Constants.UdiEntityType.Element, settingsKey);
8383
}
84+
85+
public virtual bool ReferencesContent(Guid key)
86+
=> ContentKey == key;
87+
88+
public virtual bool ReferencesSetting(Guid key)
89+
=> SettingsKey == key;
8490
}

src/Umbraco.Core/Models/Blocks/IBlockLayoutItem.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,8 @@ public interface IBlockLayoutItem
1414
public Guid ContentKey { get; set; }
1515

1616
public Guid? SettingsKey { get; set; }
17+
18+
public bool ReferencesContent(Guid key) => ContentKey == key;
19+
20+
public bool ReferencesSetting(Guid key) => SettingsKey == key;
1721
}

src/Umbraco.Core/PublishedCache/PublishedElement.cs

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
using Microsoft.Extensions.DependencyInjection;
2+
using Umbraco.Cms.Core.DependencyInjection;
13
using Umbraco.Cms.Core.Models.PublishedContent;
24
using Umbraco.Cms.Core.PropertyEditors;
35

@@ -16,9 +18,28 @@ public class PublishedElement : IPublishedElement
1618

1719
private readonly IPublishedProperty[] _propertiesArray;
1820

21+
[Obsolete("Please use the non-obsolete constructor. Will be removed in V17.")]
22+
public PublishedElement(IPublishedContentType contentType, Guid key, Dictionary<string, object?> values, bool previewing)
23+
: this(contentType, key, values, previewing, PropertyCacheLevel.None, null)
24+
{
25+
}
26+
27+
[Obsolete("Please use the non-obsolete constructor. Will be removed in V17.")]
28+
public PublishedElement(IPublishedContentType contentType, Guid key, Dictionary<string, object?>? values, bool previewing, PropertyCacheLevel referenceCacheLevel, ICacheManager? cacheManager)
29+
: this(
30+
contentType,
31+
key,
32+
values,
33+
previewing,
34+
referenceCacheLevel,
35+
StaticServiceProvider.Instance.GetRequiredService<IVariationContextAccessor>().VariationContext ?? new VariationContext(),
36+
cacheManager)
37+
{
38+
}
39+
1940
// initializes a new instance of the PublishedElement class
2041
// within the context of a published snapshot service (eg a published content property value)
21-
public PublishedElement(IPublishedContentType contentType, Guid key, Dictionary<string, object?>? values, bool previewing, PropertyCacheLevel referenceCacheLevel, ICacheManager? cacheManager)
42+
public PublishedElement(IPublishedContentType contentType, Guid key, Dictionary<string, object?>? values, bool previewing, PropertyCacheLevel referenceCacheLevel, VariationContext variationContext, ICacheManager? cacheManager)
2243
{
2344
if (key == Guid.Empty)
2445
{
@@ -40,7 +61,7 @@ public PublishedElement(IPublishedContentType contentType, Guid key, Dictionary<
4061
.Select(propertyType =>
4162
{
4263
values.TryGetValue(propertyType.Alias, out var value);
43-
return (IPublishedProperty)new PublishedElementPropertyBase(propertyType, this, previewing, referenceCacheLevel,cacheManager, value);
64+
return (IPublishedProperty)new PublishedElementPropertyBase(propertyType, this, previewing, referenceCacheLevel, variationContext, cacheManager, value);
4465
})
4566
.ToArray()
4667
?? [];
@@ -51,8 +72,8 @@ public PublishedElement(IPublishedContentType contentType, Guid key, Dictionary<
5172
// + using an initial reference cache level of .None ensures that everything will be
5273
// cached at .Content level - and that reference cache level will propagate to all
5374
// properties
54-
public PublishedElement(IPublishedContentType contentType, Guid key, Dictionary<string, object?> values, bool previewing)
55-
: this(contentType, key, values, previewing, PropertyCacheLevel.None, null)
75+
public PublishedElement(IPublishedContentType contentType, Guid key, Dictionary<string, object?> values, bool previewing, VariationContext variationContext)
76+
: this(contentType, key, values, previewing, PropertyCacheLevel.None, variationContext, null)
5677
{
5778
}
5879

0 commit comments

Comments
 (0)