U4-10688 Obsolete property editors showing

Please be aware that if you do have obsolete property editors in use and set the setting "showDeprecatedPropertyEditors" to false you'll get an exception.
This commit is contained in:
Niels Hartvig
2018-02-24 21:31:10 +10:00
parent a7756afae6
commit 3da9fddd64
2 changed files with 6 additions and 4 deletions

View File

@@ -461,7 +461,7 @@ namespace Umbraco.Core
ApplicationCache.RuntimeCache,
new ManifestParser(new DirectoryInfo(IOHelper.MapPath("~/App_Plugins")), ApplicationCache.RuntimeCache));
PropertyEditorResolver.Current = new PropertyEditorResolver(ServiceProvider, ProfilingLogger.Logger, () => PluginManager.ResolvePropertyEditors(), builder);
PropertyEditorResolver.Current = new PropertyEditorResolver(ServiceProvider, ProfilingLogger.Logger, () => PluginManager.ResolvePropertyEditors(), builder, UmbracoConfig.For.UmbracoSettings().Content);
ParameterEditorResolver.Current = new ParameterEditorResolver(ServiceProvider, ProfilingLogger.Logger, () => PluginManager.ResolveParameterEditors(), builder);
//setup the validators resolver with our predefined validators

View File

@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.IO;
using System.Linq;
using Umbraco.Core.Cache;
using Umbraco.Core.Configuration.UmbracoSettings;
using Umbraco.Core.Logging;
using Umbraco.Core.IO;
using Umbraco.Core.Manifest;
@@ -39,10 +40,11 @@ namespace Umbraco.Core.PropertyEditors
_unioned = new Lazy<List<PropertyEditor>>(() => Values.Union(builder.PropertyEditors).ToList());
}
internal PropertyEditorResolver(IServiceProvider serviceProvider, ILogger logger, Func<IEnumerable<Type>> typeListProducerList, ManifestBuilder builder)
internal PropertyEditorResolver(IServiceProvider serviceProvider, ILogger logger, Func<IEnumerable<Type>> typeListProducerList, ManifestBuilder builder, IContentSection contentSection)
: base(serviceProvider, logger, typeListProducerList, ObjectLifetimeScope.Application)
{
_unioned = new Lazy<List<PropertyEditor>>(() => SanitizeNames(Values.Union(builder.PropertyEditors).ToList()));
_unioned = new Lazy<List<PropertyEditor>>(() => SanitizeNames(Values.Union(builder.PropertyEditors)
.Where(x=>x.IsDeprecated == false || contentSection != null && contentSection.ShowDeprecatedPropertyEditors).ToList()));
}
private static List<PropertyEditor> SanitizeNames(List<PropertyEditor> editors)
@@ -74,4 +76,4 @@ namespace Umbraco.Core.PropertyEditors
return PropertyEditors.SingleOrDefault(x => x.Alias == alias);
}
}
}
}