diff --git a/src/Orchard.Web/Modules/Orchard.ArchiveLater/Services/ArchiveLaterService.cs b/src/Orchard.Web/Modules/Orchard.ArchiveLater/Services/ArchiveLaterService.cs index db3d9e299..3cc1a7b54 100644 --- a/src/Orchard.Web/Modules/Orchard.ArchiveLater/Services/ArchiveLaterService.cs +++ b/src/Orchard.Web/Modules/Orchard.ArchiveLater/Services/ArchiveLaterService.cs @@ -2,6 +2,8 @@ using System.Linq; using Orchard.ArchiveLater.Models; using Orchard.ContentManagement; +using Orchard.Core.Contents; +using Orchard.Localization; using Orchard.Tasks.Scheduling; namespace Orchard.ArchiveLater.Services { @@ -10,11 +12,21 @@ namespace Orchard.ArchiveLater.Services { private readonly IScheduledTaskManager _scheduledTaskManager; - public ArchiveLaterService(IScheduledTaskManager scheduledTaskManager) { + public ArchiveLaterService( + IOrchardServices services, + IScheduledTaskManager scheduledTaskManager) { + Services = services; _scheduledTaskManager = scheduledTaskManager; + T = NullLocalizer.Instance; } + public IOrchardServices Services { get; set; } + public Localizer T { get; set; } + void IArchiveLaterService.ArchiveLater(ContentItem contentItem, DateTime scheduledArchiveUtc) { + if (!Services.Authorizer.Authorize(Permissions.PublishOthersContent, contentItem, T("Couldn't archive selected content."))) + return; + RemoveArchiveLaterTasks(contentItem); _scheduledTaskManager.CreateTask(UnpublishTaskType, scheduledArchiveUtc, contentItem); } diff --git a/src/Orchard.Web/Modules/Orchard.PublishLater/Services/PublishLaterService.cs b/src/Orchard.Web/Modules/Orchard.PublishLater/Services/PublishLaterService.cs index 7e5552c0e..f0e650a74 100644 --- a/src/Orchard.Web/Modules/Orchard.PublishLater/Services/PublishLaterService.cs +++ b/src/Orchard.Web/Modules/Orchard.PublishLater/Services/PublishLaterService.cs @@ -1,5 +1,7 @@ using System; using Orchard.ContentManagement; +using Orchard.Core.Contents; +using Orchard.Localization; using Orchard.PublishLater.Models; using Orchard.Tasks.Scheduling; @@ -7,11 +9,21 @@ namespace Orchard.PublishLater.Services { public class PublishLaterService : IPublishLaterService { private readonly IPublishingTaskManager _publishingTaskManager; - public PublishLaterService(IPublishingTaskManager publishingTaskManager) { + public PublishLaterService( + IOrchardServices services, + IPublishingTaskManager publishingTaskManager) { + Services = services; _publishingTaskManager = publishingTaskManager; + T = NullLocalizer.Instance; } + public IOrchardServices Services { get; set; } + public Localizer T { get; set; } + void IPublishLaterService.Publish(ContentItem contentItem, DateTime scheduledPublishUtc) { + if (!Services.Authorizer.Authorize(Permissions.PublishOthersContent, contentItem, T("Couldn't publish selected content."))) + return; + _publishingTaskManager.Publish(contentItem, scheduledPublishUtc); }