diff --git a/src/Orchard.Web/Modules/Orchard.AntiSpam/Controllers/AdminController.cs b/src/Orchard.Web/Modules/Orchard.AntiSpam/Controllers/AdminController.cs index 36863d2fb..6af7eb3ae 100644 --- a/src/Orchard.Web/Modules/Orchard.AntiSpam/Controllers/AdminController.cs +++ b/src/Orchard.Web/Modules/Orchard.AntiSpam/Controllers/AdminController.cs @@ -144,7 +144,7 @@ namespace Orchard.AntiSpam.Controllers { if (spam != null) { spam.As().Status = SpamStatus.Spam; _spamService.ReportSpam(spam.As()); - Services.ContentManager.Publish(spam); + Services.ContentManager.Unpublish(spam); } return this.RedirectLocal(returnUrl, "~/"); @@ -158,7 +158,7 @@ namespace Orchard.AntiSpam.Controllers { var spam = Services.ContentManager.Get(id, VersionOptions.Latest); if (spam != null) { spam.As().Status = SpamStatus.Ham; - _spamService.ReportSpam(spam.As()); + _spamService.ReportHam(spam.As()); Services.ContentManager.Publish(spam); } diff --git a/src/Orchard.Web/Modules/Orchard.AntiSpam/Drivers/SpamFilterPartDriver.cs b/src/Orchard.Web/Modules/Orchard.AntiSpam/Drivers/SpamFilterPartDriver.cs index addcada23..ed2abeac5 100644 --- a/src/Orchard.Web/Modules/Orchard.AntiSpam/Drivers/SpamFilterPartDriver.cs +++ b/src/Orchard.Web/Modules/Orchard.AntiSpam/Drivers/SpamFilterPartDriver.cs @@ -1,6 +1,5 @@ using System; using Orchard.AntiSpam.Models; -using Orchard.AntiSpam.Services; using Orchard.AntiSpam.Settings; using Orchard.ContentManagement.Drivers; using Orchard.ContentManagement.Handlers; @@ -8,11 +7,9 @@ using Orchard.Localization; namespace Orchard.AntiSpam.Drivers { public class SpamFilterPartDriver : ContentPartDriver { - private readonly ISpamService _spamService; private const string TemplateName = "Parts/SpamFilter"; - public SpamFilterPartDriver(IOrchardServices services, ISpamService spamService) { - _spamService = spamService; + public SpamFilterPartDriver(IOrchardServices services) { T = NullLocalizer.Instance; Services = services; } @@ -25,8 +22,6 @@ namespace Orchard.AntiSpam.Drivers { } protected override DriverResult Editor(SpamFilterPart part, ContentManagement.IUpdateModel updater, dynamic shapeHelper) { - part.Status = _spamService.CheckForSpam(part); - if (part.Settings.GetModel().DeleteSpam) { updater.AddModelError("Spam", T("Spam detected.")); } diff --git a/src/Orchard.Web/Modules/Orchard.AntiSpam/Handlers/SpamFilterPartHandler.cs b/src/Orchard.Web/Modules/Orchard.AntiSpam/Handlers/SpamFilterPartHandler.cs index 887672386..de0cdaab0 100644 --- a/src/Orchard.Web/Modules/Orchard.AntiSpam/Handlers/SpamFilterPartHandler.cs +++ b/src/Orchard.Web/Modules/Orchard.AntiSpam/Handlers/SpamFilterPartHandler.cs @@ -1,5 +1,5 @@ using Orchard.AntiSpam.Models; - +using Orchard.AntiSpam.Services; using Orchard.AntiSpam.Settings; using Orchard.ContentManagement.Handlers; using Orchard.Data; @@ -7,14 +7,22 @@ using Orchard.Data; namespace Orchard.AntiSpam.Handlers { public class SpamFilterPartHandler : ContentHandler { private readonly ITransactionManager _transactionManager; + private readonly ISpamService _spamService; public SpamFilterPartHandler( IRepository repository, - ITransactionManager transactionManager + ITransactionManager transactionManager, + ISpamService spamService ) { _transactionManager = transactionManager; + _spamService = spamService; + Filters.Add(StorageFilter.For(repository)); + OnCreating((context, part) => { + part.Status = _spamService.CheckForSpam(part); + }); + OnPublishing((context, part) => { if (part.Status == SpamStatus.Spam) { if (part.Settings.GetModel().DeleteSpam) { diff --git a/src/Orchard.Web/Modules/Orchard.AntiSpam/Services/DefaultSpamService.cs b/src/Orchard.Web/Modules/Orchard.AntiSpam/Services/DefaultSpamService.cs index 970ca1f51..2ff30c9e3 100644 --- a/src/Orchard.Web/Modules/Orchard.AntiSpam/Services/DefaultSpamService.cs +++ b/src/Orchard.Web/Modules/Orchard.AntiSpam/Services/DefaultSpamService.cs @@ -126,6 +126,7 @@ namespace Orchard.AntiSpam.Services { CommentAuthorEmail = _tokenizer.Replace(settings.CommentAuthorEmailPattern, data), CommentAuthorUrl = _tokenizer.Replace(settings.CommentAuthorUrlPattern, data), CommentContent = _tokenizer.Replace(settings.CommentContentPattern, data), + CommentType = part.ContentItem.ContentType.ToLower() }; if(workContext.HttpContext != null) {