Merge branch 'v13/dev' into v14/dev
# Conflicts: # Directory.Build.props # build/azure-pipelines.yml # src/Umbraco.Cms.Api.Common/DependencyInjection/UmbracoBuilderAuthExtensions.cs # src/Umbraco.Cms.Api.Common/OpenApi/SwaggerRouteTemplatePipelineFilter.cs # src/Umbraco.Cms.Api.Common/Security/Paths.cs # src/Umbraco.Cms.Api.Delivery/Controllers/Security/MemberController.cs # src/Umbraco.Cms.Api.Delivery/DependencyInjection/UmbracoBuilderExtensions.cs # src/Umbraco.Cms.Api.Delivery/Handlers/InitializeMemberApplicationNotificationHandler.cs # src/Umbraco.Cms.Api.Delivery/Handlers/RevokeMemberAuthenticationTokensNotificationHandler.cs # src/Umbraco.Cms.Api.Delivery/Security/MemberApplicationManager.cs # src/Umbraco.Cms.Api.Delivery/Services/RequestMemberAccessService.cs # src/Umbraco.Core/Constants-OAuthClaims.cs # src/Umbraco.Core/Constants-OAuthClientIds.cs # src/Umbraco.Core/DeliveryApi/IApiContentQueryProvider.cs # src/Umbraco.Core/DeliveryApi/IApiContentQueryService.cs # src/Umbraco.Core/DeliveryApi/IRequestMemberAccessService.cs # src/Umbraco.Core/DeliveryApi/NoopRequestMemberAccessService.cs # src/Umbraco.Core/Models/DeliveryApi/ProtectedAccess.cs # src/Umbraco.Core/Services/ITagService.cs # src/Umbraco.Core/Services/UserService.cs # src/Umbraco.Infrastructure/Security/IMemberApplicationManager.cs # src/Umbraco.Infrastructure/Security/OpenIdDictApplicationManagerBase.cs # src/Umbraco.Web.BackOffice/Controllers/MediaController.cs # tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/HelpPanel/systemInformation.spec.ts # version.json
This commit is contained in:
@@ -320,6 +320,8 @@ public static class ContentExtensions
|
||||
/// Stores a file.
|
||||
/// </summary>
|
||||
/// <param name="content"><see cref="IContentBase" />A content item.</param>
|
||||
/// <param name="mediaFileManager">The media file manager.</param>
|
||||
/// <param name="contentTypeBaseServiceProvider">The content type base service provider.</param>
|
||||
/// <param name="propertyTypeAlias">The property alias.</param>
|
||||
/// <param name="filename">The name of the file.</param>
|
||||
/// <param name="filestream">A stream containing the file data.</param>
|
||||
|
||||
@@ -11,7 +11,7 @@ using Umbraco.Cms.Core;
|
||||
namespace Umbraco.Extensions;
|
||||
|
||||
/// <summary>
|
||||
/// Extension methods for Dictionary & ConcurrentDictionary
|
||||
/// Extension methods for Dictionary & ConcurrentDictionary.
|
||||
/// </summary>
|
||||
public static class DictionaryExtensions
|
||||
{
|
||||
@@ -254,7 +254,7 @@ public static class DictionaryExtensions
|
||||
|
||||
/// <summary>
|
||||
/// Converts a dictionary object to a query string representation such as:
|
||||
/// firstname=shannon&lastname=deminick
|
||||
/// firstname=shannon&lastname=deminick.
|
||||
/// </summary>
|
||||
/// <param name="d"></param>
|
||||
/// <returns></returns>
|
||||
|
||||
@@ -353,7 +353,8 @@ public static class EnumerableExtensions
|
||||
/// <summary>
|
||||
/// Transforms an enumerable.
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <typeparam name="TSource"></typeparam>
|
||||
/// <typeparam name="TTarget"></typeparam>
|
||||
/// <param name="source"></param>
|
||||
/// <param name="transform"></param>
|
||||
/// <returns></returns>
|
||||
|
||||
@@ -1253,7 +1253,7 @@ public static class PublishedContentExtensions
|
||||
/// </returns>
|
||||
/// <remarks>
|
||||
/// This is the same as calling
|
||||
/// <see cref="Umbraco.Web.PublishedContentExtensions.AncestorOrSelf(IPublishedContent, int)" /> with <c>maxLevel</c>
|
||||
/// <see cref="AncestorOrSelf(IPublishedContent, int)" /> with <c>maxLevel</c>
|
||||
/// set to 1.
|
||||
/// </remarks>
|
||||
public static IPublishedContent Root(this IPublishedContent content) => content.AncestorOrSelf(1);
|
||||
@@ -1270,7 +1270,7 @@ public static class PublishedContentExtensions
|
||||
/// </returns>
|
||||
/// <remarks>
|
||||
/// This is the same as calling
|
||||
/// <see cref="Umbraco.Web.PublishedContentExtensions.AncestorOrSelf{T}(IPublishedContent, int)" /> with
|
||||
/// <see cref="AncestorOrSelf{T}(IPublishedContent, int)" /> with
|
||||
/// <c>maxLevel</c> set to 1.
|
||||
/// </remarks>
|
||||
public static T? Root<T>(this IPublishedContent content)
|
||||
|
||||
@@ -134,27 +134,6 @@ public static class PublishedElementExtensions
|
||||
|
||||
#endregion
|
||||
|
||||
#region CheckVariation
|
||||
/// <summary>
|
||||
/// Method to check if VariationContext culture differs from culture parameter, if so it will update the VariationContext for the PublishedValueFallback.
|
||||
/// </summary>
|
||||
/// <param name="publishedValueFallback">The requested PublishedValueFallback.</param>
|
||||
/// <param name="culture">The requested culture.</param>
|
||||
/// <param name="segment">The requested segment.</param>
|
||||
/// <returns></returns>
|
||||
private static void EventuallyUpdateVariationContext(IPublishedValueFallback publishedValueFallback, string? culture, string? segment)
|
||||
{
|
||||
IVariationContextAccessor? variationContextAccessor = publishedValueFallback.VariationContextAccessor;
|
||||
|
||||
//If there is a difference in requested culture and the culture that is set in the VariationContext, it will pick wrong localized content.
|
||||
//This happens for example using links to localized content in a RichText Editor.
|
||||
if (!string.IsNullOrEmpty(culture) && variationContextAccessor?.VariationContext?.Culture != culture)
|
||||
{
|
||||
variationContextAccessor!.VariationContext = new VariationContext(culture, segment);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Value<T>
|
||||
|
||||
/// <summary>
|
||||
@@ -195,8 +174,6 @@ public static class PublishedElementExtensions
|
||||
{
|
||||
IPublishedProperty? property = content.GetProperty(alias);
|
||||
|
||||
EventuallyUpdateVariationContext(publishedValueFallback, culture, segment);
|
||||
|
||||
// if we have a property, and it has a value, return that value
|
||||
if (property != null && property.HasValue(culture, segment))
|
||||
{
|
||||
|
||||
@@ -28,7 +28,7 @@ public static class RequestHandlerSettingsExtension
|
||||
return RequestHandlerSettings.DefaultCharCollection;
|
||||
}
|
||||
|
||||
/// Merges CharCollection and UserDefinedCharCollection, prioritizing UserDefinedCharCollection.
|
||||
// Merges CharCollection and UserDefinedCharCollection, prioritizing UserDefinedCharCollection.
|
||||
return MergeUnique(requestHandlerSettings.UserDefinedCharCollection, RequestHandlerSettings.DefaultCharCollection);
|
||||
}
|
||||
|
||||
|
||||
@@ -194,7 +194,7 @@ public static class StringExtensions
|
||||
/// <returns></returns>
|
||||
/// <remarks>
|
||||
/// This methods ensures that the resulting URL is structured correctly, that there's only one '?' and that things are
|
||||
/// delimited properly with '&'
|
||||
/// delimited properly with '&'
|
||||
/// </remarks>
|
||||
public static string AppendQueryStringToUrl(this string url, params string[] queryStrings)
|
||||
{
|
||||
|
||||
@@ -28,7 +28,7 @@ public static class XmlExtensions
|
||||
/// <remarks>
|
||||
/// <para>
|
||||
/// If
|
||||
/// <param name="variables" />
|
||||
/// <paramref name="variables" />
|
||||
/// is <c>null</c>, or is empty, or contains only one single
|
||||
/// value which itself is <c>null</c>, then variables are ignored.
|
||||
/// </para>
|
||||
@@ -51,7 +51,7 @@ public static class XmlExtensions
|
||||
/// <remarks>
|
||||
/// <para>
|
||||
/// If
|
||||
/// <param name="variables" />
|
||||
/// <paramref name="variables" />
|
||||
/// is <c>null</c>, or is empty, or contains only one single
|
||||
/// value which itself is <c>null</c>, then variables are ignored.
|
||||
/// </para>
|
||||
@@ -74,7 +74,7 @@ public static class XmlExtensions
|
||||
/// <remarks>
|
||||
/// <para>
|
||||
/// If
|
||||
/// <param name="variables" />
|
||||
/// <paramref name="variables" />
|
||||
/// is <c>null</c>, or is empty, or contains only one single
|
||||
/// value which itself is <c>null</c>, then variables are ignored.
|
||||
/// </para>
|
||||
@@ -102,7 +102,7 @@ public static class XmlExtensions
|
||||
/// <remarks>
|
||||
/// <para>
|
||||
/// If
|
||||
/// <param name="variables" />
|
||||
/// <paramref name="variables" />
|
||||
/// is <c>null</c>, or is empty, or contains only one single
|
||||
/// value which itself is <c>null</c>, then variables are ignored.
|
||||
/// </para>
|
||||
@@ -130,7 +130,7 @@ public static class XmlExtensions
|
||||
/// <remarks>
|
||||
/// <para>
|
||||
/// If
|
||||
/// <param name="variables" />
|
||||
/// <paramref name="variables" />
|
||||
/// is <c>null</c>, or is empty, or contains only one single
|
||||
/// value which itself is <c>null</c>, then variables are ignored.
|
||||
/// </para>
|
||||
@@ -153,7 +153,7 @@ public static class XmlExtensions
|
||||
/// <remarks>
|
||||
/// <para>
|
||||
/// If
|
||||
/// <param name="variables" />
|
||||
/// <paramref name="variables" />
|
||||
/// is <c>null</c>, or is empty, or contains only one single
|
||||
/// value which itself is <c>null</c>, then variables are ignored.
|
||||
/// </para>
|
||||
@@ -176,7 +176,7 @@ public static class XmlExtensions
|
||||
/// <remarks>
|
||||
/// <para>
|
||||
/// If
|
||||
/// <param name="variables" />
|
||||
/// <paramref name="variables" />
|
||||
/// is <c>null</c>, or is empty, or contains only one single
|
||||
/// value which itself is <c>null</c>, then variables are ignored.
|
||||
/// </para>
|
||||
@@ -203,7 +203,7 @@ public static class XmlExtensions
|
||||
/// <remarks>
|
||||
/// <para>
|
||||
/// If
|
||||
/// <param name="variables" />
|
||||
/// <paramref name="variables" />
|
||||
/// is <c>null</c>, or is empty, or contains only one single
|
||||
/// value which itself is <c>null</c>, then variables are ignored.
|
||||
/// </para>
|
||||
|
||||
Reference in New Issue
Block a user