From c21fe272ac86071b21b0e60799cfd3af5c85913a Mon Sep 17 00:00:00 2001 From: Nathan Heskew Date: Mon, 26 Jul 2010 10:50:16 -0700 Subject: [PATCH] Fixing a ysod bug w/ content item admin bulk actions (http://orchard.codeplex.com/workitem/16498) --HG-- branch : dev --- .../Contents/Controllers/AdminController.cs | 74 ++++++++++--------- 1 file changed, 38 insertions(+), 36 deletions(-) diff --git a/src/Orchard.Web/Core/Contents/Controllers/AdminController.cs b/src/Orchard.Web/Core/Contents/Controllers/AdminController.cs index f2b2a5d30..41442c582 100644 --- a/src/Orchard.Web/Core/Contents/Controllers/AdminController.cs +++ b/src/Orchard.Web/Core/Contents/Controllers/AdminController.cs @@ -140,45 +140,47 @@ namespace Orchard.Core.Contents.Controllers { [HttpPost, ActionName("List")] [FormValueRequired("submit.BulkEdit")] public ActionResult ListPOST(ContentOptions options, IEnumerable itemIds, string returnUrl) { - var accessChecked = false; - switch (options.BulkAction) { - case ContentsBulkAction.None: - break; - case ContentsBulkAction.PublishNow: - foreach (var item in itemIds.Select(itemId => _contentManager.GetLatest(itemId))) { - if (!accessChecked && !Services.Authorizer.Authorize(Permissions.PublishContent, item, T("Couldn't publish selected content."))) - return new HttpUnauthorizedResult(); + if (itemIds != null) { + var accessChecked = false; + switch (options.BulkAction) { + case ContentsBulkAction.None: + break; + case ContentsBulkAction.PublishNow: + foreach (var item in itemIds.Select(itemId => _contentManager.GetLatest(itemId))) { + if (!accessChecked && !Services.Authorizer.Authorize(Permissions.PublishContent, item, T("Couldn't publish selected content."))) + return new HttpUnauthorizedResult(); - accessChecked = true; - _contentManager.Publish(item); - Services.ContentManager.Flush(); - } - Services.Notifier.Information(T("Content successfully published.")); - break; - case ContentsBulkAction.Unpublish: - foreach (var item in itemIds.Select(itemId => _contentManager.GetLatest(itemId))) { - if (!accessChecked && !Services.Authorizer.Authorize(Permissions.PublishContent, item, T("Couldn't unpublish selected content."))) - return new HttpUnauthorizedResult(); + accessChecked = true; + _contentManager.Publish(item); + Services.ContentManager.Flush(); + } + Services.Notifier.Information(T("Content successfully published.")); + break; + case ContentsBulkAction.Unpublish: + foreach (var item in itemIds.Select(itemId => _contentManager.GetLatest(itemId))) { + if (!accessChecked && !Services.Authorizer.Authorize(Permissions.PublishContent, item, T("Couldn't unpublish selected content."))) + return new HttpUnauthorizedResult(); - accessChecked = true; - _contentManager.Unpublish(item); - Services.ContentManager.Flush(); - } - Services.Notifier.Information(T("Content successfully unpublished.")); - break; - case ContentsBulkAction.Remove: - foreach (var item in itemIds.Select(itemId => _contentManager.GetLatest(itemId))) { - if (!accessChecked && !Services.Authorizer.Authorize(Permissions.DeleteContent, item, T("Couldn't remove selected content."))) - return new HttpUnauthorizedResult(); + accessChecked = true; + _contentManager.Unpublish(item); + Services.ContentManager.Flush(); + } + Services.Notifier.Information(T("Content successfully unpublished.")); + break; + case ContentsBulkAction.Remove: + foreach (var item in itemIds.Select(itemId => _contentManager.GetLatest(itemId))) { + if (!accessChecked && !Services.Authorizer.Authorize(Permissions.DeleteContent, item, T("Couldn't remove selected content."))) + return new HttpUnauthorizedResult(); - accessChecked = true; - _contentManager.Remove(item); - Services.ContentManager.Flush(); - } - Services.Notifier.Information(T("Content successfully removed.")); - break; - default: - throw new ArgumentOutOfRangeException(); + accessChecked = true; + _contentManager.Remove(item); + Services.ContentManager.Flush(); + } + Services.Notifier.Information(T("Content successfully removed.")); + break; + default: + throw new ArgumentOutOfRangeException(); + } } if (!String.IsNullOrEmpty(returnUrl))