mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2026-02-09 09:16:41 +08:00
Fixing search qurey validation
Work Item: 16556 --HG-- branch : dev
This commit is contained in:
@@ -1,9 +1,11 @@
|
|||||||
using System.Linq;
|
using System;
|
||||||
|
using System.Linq;
|
||||||
using System.Web.Mvc;
|
using System.Web.Mvc;
|
||||||
using Orchard.ContentManagement;
|
using Orchard.ContentManagement;
|
||||||
using Orchard.DisplayManagement;
|
using Orchard.DisplayManagement;
|
||||||
using Orchard.Indexing;
|
using Orchard.Indexing;
|
||||||
using Orchard.Localization;
|
using Orchard.Localization;
|
||||||
|
using Orchard.Logging;
|
||||||
using Orchard.Search.Services;
|
using Orchard.Search.Services;
|
||||||
using Orchard.Search.ViewModels;
|
using Orchard.Search.ViewModels;
|
||||||
using Orchard.Search.Models;
|
using Orchard.Search.Models;
|
||||||
@@ -29,26 +31,29 @@ namespace Orchard.Search.Controllers {
|
|||||||
_contentManager = contentManager;
|
_contentManager = contentManager;
|
||||||
|
|
||||||
T = NullLocalizer.Instance;
|
T = NullLocalizer.Instance;
|
||||||
|
Logger = NullLogger.Instance;
|
||||||
Shape = shapeFactory;
|
Shape = shapeFactory;
|
||||||
}
|
}
|
||||||
|
|
||||||
private IOrchardServices Services { get; set; }
|
private IOrchardServices Services { get; set; }
|
||||||
public Localizer T { get; set; }
|
public Localizer T { get; set; }
|
||||||
|
public ILogger Logger { get; set; }
|
||||||
dynamic Shape { get; set; }
|
dynamic Shape { get; set; }
|
||||||
|
|
||||||
public ActionResult Index(Pager pager, string q = "") {
|
public ActionResult Index(Pager pager, string q = "") {
|
||||||
var searchFields = Services.WorkContext.CurrentSite.As<SearchSettingsPart>().SearchedFields;
|
var searchFields = Services.WorkContext.CurrentSite.As<SearchSettingsPart>().SearchedFields;
|
||||||
|
|
||||||
IPageOfItems<ISearchHit> searchHits;
|
IPageOfItems<ISearchHit> searchHits = new PageOfItems<ISearchHit>(new ISearchHit[] { });
|
||||||
if (q.Trim().StartsWith("?") || q.Trim().StartsWith("*")) {
|
try {
|
||||||
searchHits = new PageOfItems<ISearchHit>(new ISearchHit[] { });
|
|
||||||
Services.Notifier.Error(T("'*' or '?' not allowed as first character in WildcardQuery"));
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
searchHits = _searchService.Query(q, pager.Page, pager.PageSize,
|
searchHits = _searchService.Query(q, pager.Page, pager.PageSize,
|
||||||
Services.WorkContext.CurrentSite.As<SearchSettingsPart>().Record.FilterCulture,
|
Services.WorkContext.CurrentSite.As<SearchSettingsPart>().Record.FilterCulture,
|
||||||
searchFields,
|
searchFields,
|
||||||
searchHit => searchHit);
|
searchHit => searchHit);
|
||||||
|
}
|
||||||
|
catch(Exception e) {
|
||||||
|
Services.Notifier.Error(T("Invalid search query: {0}", q));
|
||||||
|
Logger.Error(e, "Invalid search query: " + q);
|
||||||
}
|
}
|
||||||
|
|
||||||
var list = Shape.List();
|
var list = Shape.List();
|
||||||
|
|||||||
Reference in New Issue
Block a user