From 69e193e8878949039f72f93608851cf78e259e98 Mon Sep 17 00:00:00 2001 From: Claus Date: Fri, 12 Jan 2018 09:23:40 +0100 Subject: [PATCH 1/2] U4-10824 Helper methods for adding filters to tours --- src/Umbraco.Web/TourFilterResolver.cs | 31 +++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/src/Umbraco.Web/TourFilterResolver.cs b/src/Umbraco.Web/TourFilterResolver.cs index 586d0cb89f..85c3363b6e 100644 --- a/src/Umbraco.Web/TourFilterResolver.cs +++ b/src/Umbraco.Web/TourFilterResolver.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Text.RegularExpressions; using Umbraco.Core.Logging; using Umbraco.Core.ObjectResolution; using Umbraco.Web.Models; @@ -33,6 +34,36 @@ namespace Umbraco.Web _instances.Add(filter); } + /// + /// Helper method for adding a filter by plugin name + /// + /// + public void AddFilterByPlugin(string pluginName) + { + using (Resolution.Configuration) + _instances.Add(BackOfficeTourFilter.FilterPlugin(new Regex(pluginName, RegexOptions.IgnoreCase))); + } + + /// + /// Helper method for adding a filter by file name + /// + /// + public void AddFilterByFile(string file) + { + using (Resolution.Configuration) + _instances.Add(BackOfficeTourFilter.FilterFile(new Regex(file, RegexOptions.IgnoreCase))); + } + + /// + /// Helper method for adding a filter by tour alias + /// + /// + public void AddFilterByAlias(string alias) + { + using (Resolution.Configuration) + _instances.Add(BackOfficeTourFilter.FilterAlias(new Regex(alias, RegexOptions.IgnoreCase))); + } + /// /// Removes a filter instance /// From 59d75277c29fbdc35483a29c523166f4e969d4a4 Mon Sep 17 00:00:00 2001 From: Claus Date: Fri, 12 Jan 2018 09:52:52 +0100 Subject: [PATCH 2/2] fixing up helpers to match exact strings as this is what people will be using. If they need more advanced regex matches they should register by a regex instead. --- src/Umbraco.Web/TourFilterResolver.cs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web/TourFilterResolver.cs b/src/Umbraco.Web/TourFilterResolver.cs index 85c3363b6e..79112f7097 100644 --- a/src/Umbraco.Web/TourFilterResolver.cs +++ b/src/Umbraco.Web/TourFilterResolver.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; using System.Text.RegularExpressions; +using Umbraco.Core; using Umbraco.Core.Logging; using Umbraco.Core.ObjectResolution; using Umbraco.Web.Models; @@ -35,31 +36,34 @@ namespace Umbraco.Web } /// - /// Helper method for adding a filter by plugin name + /// Helper method for adding a filter by exact plugin name /// - /// + /// Regex string used for matching public void AddFilterByPlugin(string pluginName) { + pluginName = pluginName.EnsureStartsWith("^").EnsureEndsWith("$"); using (Resolution.Configuration) _instances.Add(BackOfficeTourFilter.FilterPlugin(new Regex(pluginName, RegexOptions.IgnoreCase))); } /// - /// Helper method for adding a filter by file name + /// Helper method for adding a filter by exact file name /// /// public void AddFilterByFile(string file) { + file = file.EnsureStartsWith("^").EnsureEndsWith("$"); using (Resolution.Configuration) _instances.Add(BackOfficeTourFilter.FilterFile(new Regex(file, RegexOptions.IgnoreCase))); } /// - /// Helper method for adding a filter by tour alias + /// Helper method for adding a filter by exact tour alias /// /// public void AddFilterByAlias(string alias) { + alias = alias.EnsureStartsWith("^").EnsureEndsWith("$"); using (Resolution.Configuration) _instances.Add(BackOfficeTourFilter.FilterAlias(new Regex(alias, RegexOptions.IgnoreCase))); }