From aa269fd49f3dcbe13975cf1571c12e44f03b2acc Mon Sep 17 00:00:00 2001 From: Nathan Heskew Date: Thu, 22 Jul 2010 14:08:31 -0700 Subject: [PATCH 1/4] Comment -> CommentPart; HasComments -> CommentsPart; HasCommentsContainer -> CommentsContainerPart - updating part names to conform to a Part convention --HG-- branch : dev rename : src/Orchard.Web/Modules/Orchard.Comments/Drivers/CommentDriver.cs => src/Orchard.Web/Modules/Orchard.Comments/Drivers/CommentPartDriver.cs rename : src/Orchard.Web/Modules/Orchard.Comments/Drivers/HasCommentsContainerDriver.cs => src/Orchard.Web/Modules/Orchard.Comments/Drivers/CommentsContainerPartDriver.cs rename : src/Orchard.Web/Modules/Orchard.Comments/Drivers/HasCommentsDriver.cs => src/Orchard.Web/Modules/Orchard.Comments/Drivers/CommentsPartDriver.cs rename : src/Orchard.Web/Modules/Orchard.Comments/Handlers/CommentHandler.cs => src/Orchard.Web/Modules/Orchard.Comments/Handlers/CommentPartHandler.cs rename : src/Orchard.Web/Modules/Orchard.Comments/Handlers/CommentSettingsHandler.cs => src/Orchard.Web/Modules/Orchard.Comments/Handlers/CommentSettingsPartHandler.cs rename : src/Orchard.Web/Modules/Orchard.Comments/Handlers/HasCommentsHandler.cs => src/Orchard.Web/Modules/Orchard.Comments/Handlers/CommentsPartHandler.cs rename : src/Orchard.Web/Modules/Orchard.Comments/Models/HasCommentsContainer.cs => src/Orchard.Web/Modules/Orchard.Comments/Models/CommentPart.cs rename : src/Orchard.Web/Modules/Orchard.Comments/Models/CommentRecord.cs => src/Orchard.Web/Modules/Orchard.Comments/Models/CommentPartRecord.cs rename : src/Orchard.Web/Modules/Orchard.Comments/Models/CommentSettings.cs => src/Orchard.Web/Modules/Orchard.Comments/Models/CommentSettingsPart.cs rename : src/Orchard.Web/Modules/Orchard.Comments/Models/CommentSettingsRecord.cs => src/Orchard.Web/Modules/Orchard.Comments/Models/CommentSettingsPartRecord.cs rename : src/Orchard.Web/Modules/Orchard.Comments/Models/HasCommentsContainer.cs => src/Orchard.Web/Modules/Orchard.Comments/Models/CommentsContainerPart.cs rename : src/Orchard.Web/Modules/Orchard.Comments/Models/HasComments.cs => src/Orchard.Web/Modules/Orchard.Comments/Models/CommentsPart.cs rename : src/Orchard.Web/Modules/Orchard.Comments/Models/HasCommentsRecord.cs => src/Orchard.Web/Modules/Orchard.Comments/Models/CommentsPartRecord.cs rename : src/Orchard.Web/Modules/Orchard.Comments/Views/DisplayTemplates/Parts/Comments.HasComments.ascx => src/Orchard.Web/Modules/Orchard.Comments/Views/DisplayTemplates/Parts/Comments.Comments.ascx rename : src/Orchard.Web/Modules/Orchard.Comments/Views/EditorTemplates/Parts/Comments.HasComments.ascx => src/Orchard.Web/Modules/Orchard.Comments/Views/EditorTemplates/Parts/Comments.Comments.ascx rename : src/Orchard.Web/Themes/Contoso/Views/DisplayTemplates/Parts/Comments.HasComments.ascx => src/Orchard.Web/Themes/Contoso/Views/DisplayTemplates/Parts/Comments.Comments.ascx rename : src/Orchard.Web/Themes/Corporate/Views/DisplayTemplates/Parts/Comments.HasComments.ascx => src/Orchard.Web/Themes/Corporate/Views/DisplayTemplates/Parts/Comments.Comments.ascx --- .../Controllers/AdminController.cs | 24 +++++----- .../Controllers/CommentController.cs | 4 +- .../DataMigrations/CommentsDataMigration.cs | 20 ++++---- ...{CommentDriver.cs => CommentPartDriver.cs} | 2 +- ...iver.cs => CommentsContainerPartDriver.cs} | 8 ++-- ...ommentsDriver.cs => CommentsPartDriver.cs} | 14 +++--- .../Feeds/CommentFeedItemBuilder.cs | 2 +- .../Feeds/CommentedOnContainerFeedQuery.cs | 2 +- .../Feeds/CommentedOnFeedQuery.cs | 2 +- ...ommentHandler.cs => CommentPartHandler.cs} | 4 +- ...ndler.cs => CommentSettingsPartHandler.cs} | 8 ++-- ...mentsHandler.cs => CommentsPartHandler.cs} | 18 +++---- .../Models/{Comment.cs => CommentPart.cs} | 2 +- ...{CommentRecord.cs => CommentPartRecord.cs} | 2 +- .../Models/CommentSettings.cs | 6 --- .../Models/CommentSettingsPart.cs | 6 +++ ...Record.cs => CommentSettingsPartRecord.cs} | 2 +- ...sContainer.cs => CommentsContainerPart.cs} | 2 +- .../Orchard.Comments/Models/CommentsPart.cs | 28 +++++++++++ ...ommentsRecord.cs => CommentsPartRecord.cs} | 2 +- .../Orchard.Comments/Models/HasComments.cs | 28 ----------- .../Orchard.Comments/Orchard.Comments.csproj | 30 ++++++------ .../Services/CommentService.cs | 48 +++++++++---------- .../Services/CommentValidator.cs | 20 ++++---- .../Services/ICommentService.cs | 12 ++--- .../Services/ICommentValidator.cs | 2 +- .../ViewModels/CommentCountViewModel.cs | 2 +- .../ViewModels/CommentsIndexViewModel.cs | 2 +- ...asComments.ascx => Comments.Comments.ascx} | 2 +- ...asComments.ascx => Comments.Comments.ascx} | 2 +- .../Parts/Comments.SiteSettings.ascx | 2 +- .../Views/ListOfComments.ascx | 2 +- .../Orchard.Setup/Services/SetupService.cs | 8 ++-- src/Orchard.Web/Orchard.Web.csproj | 4 +- .../Items/Blogs.BlogPost.Summary.ascx | 2 +- .../Items/Blogs.BlogPost.ascx | 2 +- .../Parts/Blogs.BlogPost.Metadata.ascx | 2 +- .../Themes/Classic/Views/ZoneTest.ascx | 2 +- .../Items/Blogs.BlogPost.Summary.ascx | 2 +- .../Items/Blogs.BlogPost.ascx | 2 +- .../Parts/Blogs.BlogPost.Metadata.ascx | 2 +- .../Themes/ClassicDark/Views/ZoneTest.ascx | 2 +- .../Items/Blogs.BlogPost.ascx | 2 +- ...asComments.ascx => Comments.Comments.ascx} | 2 +- .../Themes/Contoso/Views/ListOfComments.ascx | 2 +- .../Items/Blogs.BlogPost.ascx | 2 +- ...asComments.ascx => Comments.Comments.ascx} | 2 +- .../Corporate/Views/ListOfComments.ascx | 2 +- .../Items/Blogs.BlogPost.Summary.ascx | 2 +- .../Items/Blogs.BlogPost.ascx | 2 +- .../Parts/Blogs.BlogPost.Metadata.ascx | 2 +- .../Themes/Green/Views/ListOfComments.ascx | 2 +- .../TestData/SimpleWebProject.xml | 2 +- 53 files changed, 180 insertions(+), 180 deletions(-) rename src/Orchard.Web/Modules/Orchard.Comments/Drivers/{CommentDriver.cs => CommentPartDriver.cs} (88%) rename src/Orchard.Web/Modules/Orchard.Comments/Drivers/{HasCommentsContainerDriver.cs => CommentsContainerPartDriver.cs} (78%) rename src/Orchard.Web/Modules/Orchard.Comments/Drivers/{HasCommentsDriver.cs => CommentsPartDriver.cs} (70%) rename src/Orchard.Web/Modules/Orchard.Comments/Handlers/{CommentHandler.cs => CommentPartHandler.cs} (67%) rename src/Orchard.Web/Modules/Orchard.Comments/Handlers/{CommentSettingsHandler.cs => CommentSettingsPartHandler.cs} (50%) rename src/Orchard.Web/Modules/Orchard.Comments/Handlers/{HasCommentsHandler.cs => CommentsPartHandler.cs} (68%) rename src/Orchard.Web/Modules/Orchard.Comments/Models/{Comment.cs => CommentPart.cs} (52%) rename src/Orchard.Web/Modules/Orchard.Comments/Models/{CommentRecord.cs => CommentPartRecord.cs} (89%) delete mode 100644 src/Orchard.Web/Modules/Orchard.Comments/Models/CommentSettings.cs create mode 100644 src/Orchard.Web/Modules/Orchard.Comments/Models/CommentSettingsPart.cs rename src/Orchard.Web/Modules/Orchard.Comments/Models/{CommentSettingsRecord.cs => CommentSettingsPartRecord.cs} (81%) rename src/Orchard.Web/Modules/Orchard.Comments/Models/{HasCommentsContainer.cs => CommentsContainerPart.cs} (56%) create mode 100644 src/Orchard.Web/Modules/Orchard.Comments/Models/CommentsPart.cs rename src/Orchard.Web/Modules/Orchard.Comments/Models/{HasCommentsRecord.cs => CommentsPartRecord.cs} (75%) delete mode 100644 src/Orchard.Web/Modules/Orchard.Comments/Models/HasComments.cs rename src/Orchard.Web/Modules/Orchard.Comments/Views/DisplayTemplates/Parts/{Comments.HasComments.ascx => Comments.Comments.ascx} (97%) rename src/Orchard.Web/Modules/Orchard.Comments/Views/EditorTemplates/Parts/{Comments.HasComments.ascx => Comments.Comments.ascx} (97%) rename src/Orchard.Web/Themes/Contoso/Views/DisplayTemplates/Parts/{Comments.HasComments.ascx => Comments.Comments.ascx} (97%) rename src/Orchard.Web/Themes/Corporate/Views/DisplayTemplates/Parts/{Comments.HasComments.ascx => Comments.Comments.ascx} (97%) diff --git a/src/Orchard.Web/Modules/Orchard.Comments/Controllers/AdminController.cs b/src/Orchard.Web/Modules/Orchard.Comments/Controllers/AdminController.cs index a3d0dcf82..5b0686f4b 100644 --- a/src/Orchard.Web/Modules/Orchard.Comments/Controllers/AdminController.cs +++ b/src/Orchard.Web/Modules/Orchard.Comments/Controllers/AdminController.cs @@ -39,7 +39,7 @@ namespace Orchard.Comments.Controllers { options = new CommentIndexOptions(); // Filtering - IEnumerable comments; + IEnumerable comments; try { switch (options.Filter) { case CommentIndexFilter.All: @@ -129,7 +129,7 @@ namespace Orchard.Comments.Controllers { options = new CommentDetailsOptions(); // Filtering - IEnumerable comments; + IEnumerable comments; try { switch (options.Filter) { case CommentDetailsFilter.All: @@ -261,14 +261,14 @@ namespace Orchard.Comments.Controllers { public ActionResult Edit(int id) { try { - Comment comment = _commentService.GetComment(id); + CommentPart commentPart = _commentService.GetComment(id); var viewModel = new CommentsEditViewModel { - CommentText = comment.Record.CommentText, - Email = comment.Record.Email, - Id = comment.Record.Id, - Name = comment.Record.Author, - SiteName = comment.Record.SiteName, - Status = comment.Record.Status, + CommentText = commentPart.Record.CommentText, + Email = commentPart.Record.Email, + Id = commentPart.Record.Id, + Name = commentPart.Record.Author, + SiteName = commentPart.Record.SiteName, + Status = commentPart.Record.Status, }; return View(viewModel); @@ -319,10 +319,10 @@ namespace Orchard.Comments.Controllers { } } - private CommentEntry CreateCommentEntry(CommentRecord comment) { + private CommentEntry CreateCommentEntry(CommentPartRecord commentPart) { return new CommentEntry { - Comment = comment, - CommentedOn = _commentService.GetDisplayForCommentedContent(comment.CommentedOn).DisplayText, + Comment = commentPart, + CommentedOn = _commentService.GetDisplayForCommentedContent(commentPart.CommentedOn).DisplayText, IsChecked = false, }; } diff --git a/src/Orchard.Web/Modules/Orchard.Comments/Controllers/CommentController.cs b/src/Orchard.Web/Modules/Orchard.Comments/Controllers/CommentController.cs index ca78fac27..b01de167b 100644 --- a/src/Orchard.Web/Modules/Orchard.Comments/Controllers/CommentController.cs +++ b/src/Orchard.Web/Modules/Orchard.Comments/Controllers/CommentController.cs @@ -61,9 +61,9 @@ namespace Orchard.Comments.Controllers { CommentedOn = viewModel.CommentedOn }; - Comment comment = _commentService.CreateComment(context, CurrentSite.As().Record.ModerateComments); + CommentPart commentPart = _commentService.CreateComment(context, CurrentSite.As().Record.ModerateComments); - if (comment.Record.Status == CommentStatus.Pending) + if (commentPart.Record.Status == CommentStatus.Pending) Services.Notifier.Information(T("Your comment will appear after the site administrator approves it.")); return !String.IsNullOrEmpty(returnUrl) diff --git a/src/Orchard.Web/Modules/Orchard.Comments/DataMigrations/CommentsDataMigration.cs b/src/Orchard.Web/Modules/Orchard.Comments/DataMigrations/CommentsDataMigration.cs index 6e60f581c..1e8f3cf69 100644 --- a/src/Orchard.Web/Modules/Orchard.Comments/DataMigrations/CommentsDataMigration.cs +++ b/src/Orchard.Web/Modules/Orchard.Comments/DataMigrations/CommentsDataMigration.cs @@ -16,8 +16,8 @@ namespace Orchard.Comments.DataMigrations { .Column("ContentItemId") ); - //CREATE TABLE Orchard_Comments_CommentRecord (Id INTEGER not null, Author TEXT, SiteName TEXT, UserName TEXT, Email TEXT, Status TEXT, CommentDateUtc DATETIME, CommentText TEXT, CommentedOn INTEGER, CommentedOnContainer INTEGER, primary key (Id)); - SchemaBuilder.CreateTable("CommentRecord", table => table + //CREATE TABLE Orchard_Comments_CommentPartRecord (Id INTEGER not null, Author TEXT, SiteName TEXT, UserName TEXT, Email TEXT, Status TEXT, CommentDateUtc DATETIME, CommentText TEXT, CommentedOn INTEGER, CommentedOnContainer INTEGER, primary key (Id)); + SchemaBuilder.CreateTable("CommentPartRecord", table => table .ContentPartRecord() .Column("Author") .Column("SiteName") @@ -30,8 +30,8 @@ namespace Orchard.Comments.DataMigrations { .Column("CommentedOnContainer") ); - //CREATE TABLE Orchard_Comments_CommentSettingsRecord (Id INTEGER not null, ModerateComments INTEGER, EnableSpamProtection INTEGER, AkismetKey TEXT, AkismetUrl TEXT, primary key (Id)); - SchemaBuilder.CreateTable("CommentSettingsRecord", table => table + //CREATE TABLE Orchard_Comments_CommentSettingsPartRecord (Id INTEGER not null, ModerateComments INTEGER, EnableSpamProtection INTEGER, AkismetKey TEXT, AkismetUrl TEXT, primary key (Id)); + SchemaBuilder.CreateTable("CommentSettingsPartRecord", table => table .ContentPartRecord() .Column("ModerateComments") .Column("EnableSpamProtection") @@ -39,8 +39,8 @@ namespace Orchard.Comments.DataMigrations { .Column("AkismetUrl") ); - //CREATE TABLE Orchard_Comments_HasCommentsRecord (Id INTEGER not null, CommentsShown INTEGER, CommentsActive INTEGER, primary key (Id)); - SchemaBuilder.CreateTable("HasCommentsRecord", table => table + //CREATE TABLE Orchard_Comments_CommentsPartRecord (Id INTEGER not null, CommentsShown INTEGER, CommentsActive INTEGER, primary key (Id)); + SchemaBuilder.CreateTable("CommentsPartRecord", table => table .ContentPartRecord() .Column("CommentsShown") .Column("CommentsActive") @@ -52,20 +52,20 @@ namespace Orchard.Comments.DataMigrations { public int UpdateFrom1() { ContentDefinitionManager.AlterTypeDefinition("Comment", cfg => cfg - .WithPart("Comment") + .WithPart("CommentPart") .WithPart("CommonPart") ); ContentDefinitionManager.AlterTypeDefinition("Blog", cfg => cfg - .WithPart("HasCommentsContainer") + .WithPart("CommentsContainerPart") ); return 2; } public int UpdateFrom2() { - ContentDefinitionManager.AlterPartDefinition(typeof(HasComments).Name, cfg => cfg + ContentDefinitionManager.AlterPartDefinition(typeof(CommentsPart).Name, cfg => cfg .WithLocation(new Dictionary { {"Default", new ContentLocation { Zone = "primary", Position = "before.5" }}, {"Detail", new ContentLocation { Zone = "primary", Position = "after.5" }}, @@ -74,7 +74,7 @@ namespace Orchard.Comments.DataMigrations { {"Editor", new ContentLocation { Zone = "primary", Position = "10" }}, })); - ContentDefinitionManager.AlterPartDefinition(typeof(HasCommentsContainer).Name, cfg => cfg + ContentDefinitionManager.AlterPartDefinition(typeof(CommentsContainerPart).Name, cfg => cfg .WithLocation(new Dictionary { {"SummaryAdmin", new ContentLocation { Zone = "meta", Position = null }}, {"Summary", new ContentLocation { Zone = "meta", Position = null }}, diff --git a/src/Orchard.Web/Modules/Orchard.Comments/Drivers/CommentDriver.cs b/src/Orchard.Web/Modules/Orchard.Comments/Drivers/CommentPartDriver.cs similarity index 88% rename from src/Orchard.Web/Modules/Orchard.Comments/Drivers/CommentDriver.cs rename to src/Orchard.Web/Modules/Orchard.Comments/Drivers/CommentPartDriver.cs index 11c2273e4..b4e41e5ab 100644 --- a/src/Orchard.Web/Modules/Orchard.Comments/Drivers/CommentDriver.cs +++ b/src/Orchard.Web/Modules/Orchard.Comments/Drivers/CommentPartDriver.cs @@ -5,7 +5,7 @@ using Orchard.ContentManagement.Drivers; namespace Orchard.Comments.Drivers { [UsedImplicitly] - public class CommentDriver : ContentItemDriver { + public class CommentPartDriver : ContentItemDriver { public readonly static ContentType ContentType = new ContentType { Name = "Comment", DisplayName = "Comment" diff --git a/src/Orchard.Web/Modules/Orchard.Comments/Drivers/HasCommentsContainerDriver.cs b/src/Orchard.Web/Modules/Orchard.Comments/Drivers/CommentsContainerPartDriver.cs similarity index 78% rename from src/Orchard.Web/Modules/Orchard.Comments/Drivers/HasCommentsContainerDriver.cs rename to src/Orchard.Web/Modules/Orchard.Comments/Drivers/CommentsContainerPartDriver.cs index 0bde275dd..68bf5b501 100644 --- a/src/Orchard.Web/Modules/Orchard.Comments/Drivers/HasCommentsContainerDriver.cs +++ b/src/Orchard.Web/Modules/Orchard.Comments/Drivers/CommentsContainerPartDriver.cs @@ -9,8 +9,8 @@ using Orchard.Core.ContentsLocation.Models; namespace Orchard.Comments.Drivers { [UsedImplicitly] - public class HasCommentsContainerDriver : ContentPartDriver { - protected override DriverResult Display(HasCommentsContainer part, string displayType) { + public class CommentsContainerPartDriver : ContentPartDriver { + protected override DriverResult Display(CommentsContainerPart part, string displayType) { if (displayType == "SummaryAdmin") { return ContentPartTemplate(CreateViewModel(part.ContentItem), "Parts/Comments.CountAdmin").Location(part.GetLocation("SummaryAdmin")); } @@ -27,8 +27,8 @@ namespace Orchard.Comments.Drivers { .Where(rec => rec.Container == contentItem.Record).List(); // Count comments and create template - int count = parts.Aggregate(0, (seed, item) => seed + (item.Has() ? item.As().Comments.Count : 0)); - int pendingCount = parts.Aggregate(0, (seed, item) => seed + (item.Has() ? item.As().PendingComments.Count : 0)); + int count = parts.Aggregate(0, (seed, item) => seed + (item.Has() ? item.As().Comments.Count : 0)); + int pendingCount = parts.Aggregate(0, (seed, item) => seed + (item.Has() ? item.As().PendingComments.Count : 0)); return new CommentCountViewModel { Item = contentItem, CommentCount = count, PendingCount = pendingCount}; } diff --git a/src/Orchard.Web/Modules/Orchard.Comments/Drivers/HasCommentsDriver.cs b/src/Orchard.Web/Modules/Orchard.Comments/Drivers/CommentsPartDriver.cs similarity index 70% rename from src/Orchard.Web/Modules/Orchard.Comments/Drivers/HasCommentsDriver.cs rename to src/Orchard.Web/Modules/Orchard.Comments/Drivers/CommentsPartDriver.cs index b2384e9e0..a11bd405b 100644 --- a/src/Orchard.Web/Modules/Orchard.Comments/Drivers/HasCommentsDriver.cs +++ b/src/Orchard.Web/Modules/Orchard.Comments/Drivers/CommentsPartDriver.cs @@ -7,8 +7,8 @@ using Orchard.Core.ContentsLocation.Models; namespace Orchard.Comments.Drivers { [UsedImplicitly] - public class HasCommentsDriver : ContentPartDriver { - protected override DriverResult Display(HasComments part, string displayType) { + public class CommentsPartDriver : ContentPartDriver { + protected override DriverResult Display(CommentsPart part, string displayType) { if (part.CommentsShown == false) { return null; } @@ -16,7 +16,7 @@ namespace Orchard.Comments.Drivers { // todo: (heskew) need to be more flexible with displaying parts somehow. e.g. where should the... // comment count go in any given skin or what if the skin builder doesn't want the count if (displayType.StartsWith("Detail")) { - return ContentPartTemplate(part, "Parts/Comments.HasComments").Location(part.GetLocation("Detail")); + return ContentPartTemplate(part, "Parts/Comments.Comments").Location(part.GetLocation("Detail")); } else if (displayType == "SummaryAdmin") { var model = new CommentCountViewModel(part); @@ -32,13 +32,13 @@ namespace Orchard.Comments.Drivers { } } - protected override DriverResult Editor(HasComments part) { - return ContentPartTemplate(part, "Parts/Comments.HasComments").Location(part.GetLocation("Editor")); + protected override DriverResult Editor(CommentsPart part) { + return ContentPartTemplate(part, "Parts/Comments.Comments").Location(part.GetLocation("Editor")); } - protected override DriverResult Editor(HasComments part, IUpdateModel updater) { + protected override DriverResult Editor(CommentsPart part, IUpdateModel updater) { updater.TryUpdateModel(part, Prefix, null, null); - return ContentPartTemplate(part, "Parts/Comments.HasComments").Location(part.GetLocation("Editor")); + return ContentPartTemplate(part, "Parts/Comments.Comments").Location(part.GetLocation("Editor")); } } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Comments/Feeds/CommentFeedItemBuilder.cs b/src/Orchard.Web/Modules/Orchard.Comments/Feeds/CommentFeedItemBuilder.cs index 75ab77447..38d72cd40 100644 --- a/src/Orchard.Web/Modules/Orchard.Comments/Feeds/CommentFeedItemBuilder.cs +++ b/src/Orchard.Web/Modules/Orchard.Comments/Feeds/CommentFeedItemBuilder.cs @@ -24,7 +24,7 @@ namespace Orchard.Comments.Feeds { Localizer T { get; set; } public void Populate(FeedContext context) { - foreach (var feedItem in context.Response.Items.OfType>()) { + foreach (var feedItem in context.Response.Items.OfType>()) { var comment = feedItem.Item; var commentedOn = _contentManager.Get(feedItem.Item.Record.CommentedOn); var commentedOnInspector = new ItemInspector( diff --git a/src/Orchard.Web/Modules/Orchard.Comments/Feeds/CommentedOnContainerFeedQuery.cs b/src/Orchard.Web/Modules/Orchard.Comments/Feeds/CommentedOnContainerFeedQuery.cs index 939e4c457..3c3a9f348 100644 --- a/src/Orchard.Web/Modules/Orchard.Comments/Feeds/CommentedOnContainerFeedQuery.cs +++ b/src/Orchard.Web/Modules/Orchard.Comments/Feeds/CommentedOnContainerFeedQuery.cs @@ -30,7 +30,7 @@ namespace Orchard.Comments.Feeds { limit = (int)limitValue.ConvertTo(typeof(int)); var comments = _contentManager - .Query() + .Query() .Where(x => x.CommentedOnContainer == commentedOnContainer && x.Status == CommentStatus.Approved) .OrderByDescending(x => x.CommentDateUtc) .Slice(0, limit); diff --git a/src/Orchard.Web/Modules/Orchard.Comments/Feeds/CommentedOnFeedQuery.cs b/src/Orchard.Web/Modules/Orchard.Comments/Feeds/CommentedOnFeedQuery.cs index c8faf8601..eec54865f 100644 --- a/src/Orchard.Web/Modules/Orchard.Comments/Feeds/CommentedOnFeedQuery.cs +++ b/src/Orchard.Web/Modules/Orchard.Comments/Feeds/CommentedOnFeedQuery.cs @@ -30,7 +30,7 @@ namespace Orchard.Comments.Feeds { limit = (int)limitValue.ConvertTo(typeof(int)); var comments = _contentManager - .Query() + .Query() .Where(x => x.CommentedOn == commentedOn && x.Status == CommentStatus.Approved) .OrderByDescending(x => x.CommentDateUtc) .Slice(0, limit); diff --git a/src/Orchard.Web/Modules/Orchard.Comments/Handlers/CommentHandler.cs b/src/Orchard.Web/Modules/Orchard.Comments/Handlers/CommentPartHandler.cs similarity index 67% rename from src/Orchard.Web/Modules/Orchard.Comments/Handlers/CommentHandler.cs rename to src/Orchard.Web/Modules/Orchard.Comments/Handlers/CommentPartHandler.cs index a32ef6f7b..5051e067b 100644 --- a/src/Orchard.Web/Modules/Orchard.Comments/Handlers/CommentHandler.cs +++ b/src/Orchard.Web/Modules/Orchard.Comments/Handlers/CommentPartHandler.cs @@ -7,8 +7,8 @@ using Orchard.Data; namespace Orchard.Comments.Handlers { [UsedImplicitly] - public class CommentHandler : ContentHandler { - public CommentHandler(IRepository commentsRepository) { + public class CommentPartHandler : ContentHandler { + public CommentPartHandler(IRepository commentsRepository) { Filters.Add(StorageFilter.For(commentsRepository)); } } diff --git a/src/Orchard.Web/Modules/Orchard.Comments/Handlers/CommentSettingsHandler.cs b/src/Orchard.Web/Modules/Orchard.Comments/Handlers/CommentSettingsPartHandler.cs similarity index 50% rename from src/Orchard.Web/Modules/Orchard.Comments/Handlers/CommentSettingsHandler.cs rename to src/Orchard.Web/Modules/Orchard.Comments/Handlers/CommentSettingsPartHandler.cs index 44a7db3cf..e2a214a0d 100644 --- a/src/Orchard.Web/Modules/Orchard.Comments/Handlers/CommentSettingsHandler.cs +++ b/src/Orchard.Web/Modules/Orchard.Comments/Handlers/CommentSettingsPartHandler.cs @@ -5,11 +5,11 @@ using Orchard.ContentManagement.Handlers; namespace Orchard.Comments.Handlers { [UsedImplicitly] - public class CommentSettingsHandler : ContentHandler { - public CommentSettingsHandler(IRepository repository) { - Filters.Add(new ActivatingFilter("Site")); + public class CommentSettingsPartHandler : ContentHandler { + public CommentSettingsPartHandler(IRepository repository) { + Filters.Add(new ActivatingFilter("Site")); Filters.Add(StorageFilter.For(repository)); - Filters.Add(new TemplateFilterForRecord("CommentSettings", "Parts/Comments.SiteSettings")); + Filters.Add(new TemplateFilterForRecord("CommentSettingsPart", "Parts/Comments.SiteSettings")); } } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Comments/Handlers/HasCommentsHandler.cs b/src/Orchard.Web/Modules/Orchard.Comments/Handlers/CommentsPartHandler.cs similarity index 68% rename from src/Orchard.Web/Modules/Orchard.Comments/Handlers/HasCommentsHandler.cs rename to src/Orchard.Web/Modules/Orchard.Comments/Handlers/CommentsPartHandler.cs index f4bd5a449..da72564e1 100644 --- a/src/Orchard.Web/Modules/Orchard.Comments/Handlers/HasCommentsHandler.cs +++ b/src/Orchard.Web/Modules/Orchard.Comments/Handlers/CommentsPartHandler.cs @@ -8,32 +8,32 @@ using Orchard.ContentManagement.Handlers; namespace Orchard.Comments.Handlers { [UsedImplicitly] - public class HasCommentsHandler : ContentHandler { - public HasCommentsHandler( + public class CommentsPartHandler : ContentHandler { + public CommentsPartHandler( IContentManager contentManager, - IRepository hasCommentsRepository, + IRepository commentsRepository, ICommentService commentService) { - Filters.Add(StorageFilter.For(hasCommentsRepository)); + Filters.Add(StorageFilter.For(commentsRepository)); - OnInitializing((ctx, x) => { + OnInitializing((ctx, x) => { x.CommentsActive = true; x.CommentsShown = true; }); - OnLoading((context, comments) => { + OnLoading((context, comments) => { comments._comments.Loader(list => contentManager - .Query() + .Query() .Where(x => x.CommentedOn == context.ContentItem.Id && x.Status == CommentStatus.Approved) .List().ToList()); comments._pendingComments.Loader(list => contentManager - .Query() + .Query() .Where(x => x.CommentedOn == context.ContentItem.Id && x.Status == CommentStatus.Pending) .List().ToList()); }); - OnRemoved( + OnRemoved( (context, c) => { foreach (var comment in commentService.GetCommentsForCommentedContent(context.ContentItem.Id)) { contentManager.Remove(comment.ContentItem); diff --git a/src/Orchard.Web/Modules/Orchard.Comments/Models/Comment.cs b/src/Orchard.Web/Modules/Orchard.Comments/Models/CommentPart.cs similarity index 52% rename from src/Orchard.Web/Modules/Orchard.Comments/Models/Comment.cs rename to src/Orchard.Web/Modules/Orchard.Comments/Models/CommentPart.cs index 432a078b3..851b90d45 100644 --- a/src/Orchard.Web/Modules/Orchard.Comments/Models/Comment.cs +++ b/src/Orchard.Web/Modules/Orchard.Comments/Models/CommentPart.cs @@ -1,6 +1,6 @@ using Orchard.ContentManagement; namespace Orchard.Comments.Models { - public class Comment : ContentPart { + public class CommentPart : ContentPart { } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Comments/Models/CommentRecord.cs b/src/Orchard.Web/Modules/Orchard.Comments/Models/CommentPartRecord.cs similarity index 89% rename from src/Orchard.Web/Modules/Orchard.Comments/Models/CommentRecord.cs rename to src/Orchard.Web/Modules/Orchard.Comments/Models/CommentPartRecord.cs index 6de01664b..2209c4979 100644 --- a/src/Orchard.Web/Modules/Orchard.Comments/Models/CommentRecord.cs +++ b/src/Orchard.Web/Modules/Orchard.Comments/Models/CommentPartRecord.cs @@ -3,7 +3,7 @@ using Orchard.ContentManagement.Records; using Orchard.Data.Conventions; namespace Orchard.Comments.Models { - public class CommentRecord : ContentPartRecord { + public class CommentPartRecord : ContentPartRecord { public virtual string Author { get; set; } public virtual string SiteName { get; set; } public virtual string UserName { get; set; } diff --git a/src/Orchard.Web/Modules/Orchard.Comments/Models/CommentSettings.cs b/src/Orchard.Web/Modules/Orchard.Comments/Models/CommentSettings.cs deleted file mode 100644 index f30a4f6c8..000000000 --- a/src/Orchard.Web/Modules/Orchard.Comments/Models/CommentSettings.cs +++ /dev/null @@ -1,6 +0,0 @@ -using Orchard.ContentManagement; - -namespace Orchard.Comments.Models { - public class CommentSettings : ContentPart { - } -} diff --git a/src/Orchard.Web/Modules/Orchard.Comments/Models/CommentSettingsPart.cs b/src/Orchard.Web/Modules/Orchard.Comments/Models/CommentSettingsPart.cs new file mode 100644 index 000000000..28ddaf351 --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.Comments/Models/CommentSettingsPart.cs @@ -0,0 +1,6 @@ +using Orchard.ContentManagement; + +namespace Orchard.Comments.Models { + public class CommentSettingsPart : ContentPart { + } +} diff --git a/src/Orchard.Web/Modules/Orchard.Comments/Models/CommentSettingsRecord.cs b/src/Orchard.Web/Modules/Orchard.Comments/Models/CommentSettingsPartRecord.cs similarity index 81% rename from src/Orchard.Web/Modules/Orchard.Comments/Models/CommentSettingsRecord.cs rename to src/Orchard.Web/Modules/Orchard.Comments/Models/CommentSettingsPartRecord.cs index a75f68b22..78c0110cd 100644 --- a/src/Orchard.Web/Modules/Orchard.Comments/Models/CommentSettingsRecord.cs +++ b/src/Orchard.Web/Modules/Orchard.Comments/Models/CommentSettingsPartRecord.cs @@ -1,7 +1,7 @@ using Orchard.ContentManagement.Records; namespace Orchard.Comments.Models { - public class CommentSettingsRecord : ContentPartRecord { + public class CommentSettingsPartRecord : ContentPartRecord { public virtual bool ModerateComments { get; set; } public virtual bool EnableSpamProtection { get; set; } public virtual string AkismetKey { get; set; } diff --git a/src/Orchard.Web/Modules/Orchard.Comments/Models/HasCommentsContainer.cs b/src/Orchard.Web/Modules/Orchard.Comments/Models/CommentsContainerPart.cs similarity index 56% rename from src/Orchard.Web/Modules/Orchard.Comments/Models/HasCommentsContainer.cs rename to src/Orchard.Web/Modules/Orchard.Comments/Models/CommentsContainerPart.cs index 1c76cd21b..d51f27eb4 100644 --- a/src/Orchard.Web/Modules/Orchard.Comments/Models/HasCommentsContainer.cs +++ b/src/Orchard.Web/Modules/Orchard.Comments/Models/CommentsContainerPart.cs @@ -1,6 +1,6 @@ using Orchard.ContentManagement; namespace Orchard.Comments.Models { - public class HasCommentsContainer : ContentPart { + public class CommentsContainerPart : ContentPart { } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Comments/Models/CommentsPart.cs b/src/Orchard.Web/Modules/Orchard.Comments/Models/CommentsPart.cs new file mode 100644 index 000000000..10b227ffe --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.Comments/Models/CommentsPart.cs @@ -0,0 +1,28 @@ +using System.Collections.Generic; +using Orchard.ContentManagement; +using Orchard.ContentManagement.Utilities; + +namespace Orchard.Comments.Models { + public class CommentsPart : ContentPart { + public CommentsPart() { + Comments = new List(); + PendingComments = new List(); + } + + public readonly LazyField> _comments = new LazyField>(); + public readonly LazyField> _pendingComments = new LazyField>(); + + public IList Comments { get { return _comments.Value; } set { _comments.Value = value; } } + public IList PendingComments { get { return _pendingComments.Value; } set { _pendingComments.Value = value; } } + + public bool CommentsShown { + get { return Record.CommentsShown; } + set { Record.CommentsShown = value; } + } + + public bool CommentsActive { + get { return Record.CommentsActive; } + set { Record.CommentsActive = value; } + } + } +} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Comments/Models/HasCommentsRecord.cs b/src/Orchard.Web/Modules/Orchard.Comments/Models/CommentsPartRecord.cs similarity index 75% rename from src/Orchard.Web/Modules/Orchard.Comments/Models/HasCommentsRecord.cs rename to src/Orchard.Web/Modules/Orchard.Comments/Models/CommentsPartRecord.cs index b25138083..d423f8c54 100644 --- a/src/Orchard.Web/Modules/Orchard.Comments/Models/HasCommentsRecord.cs +++ b/src/Orchard.Web/Modules/Orchard.Comments/Models/CommentsPartRecord.cs @@ -1,7 +1,7 @@ using Orchard.ContentManagement.Records; namespace Orchard.Comments.Models { - public class HasCommentsRecord : ContentPartRecord { + public class CommentsPartRecord : ContentPartRecord { public virtual bool CommentsShown { get; set; } public virtual bool CommentsActive { get; set; } } diff --git a/src/Orchard.Web/Modules/Orchard.Comments/Models/HasComments.cs b/src/Orchard.Web/Modules/Orchard.Comments/Models/HasComments.cs deleted file mode 100644 index 724fc99f0..000000000 --- a/src/Orchard.Web/Modules/Orchard.Comments/Models/HasComments.cs +++ /dev/null @@ -1,28 +0,0 @@ -using System.Collections.Generic; -using Orchard.ContentManagement; -using Orchard.ContentManagement.Utilities; - -namespace Orchard.Comments.Models { - public class HasComments : ContentPart { - public HasComments() { - Comments = new List(); - PendingComments = new List(); - } - - public readonly LazyField> _comments = new LazyField>(); - public readonly LazyField> _pendingComments = new LazyField>(); - - public IList Comments { get { return _comments.Value; } set { _comments.Value = value; } } - public IList PendingComments { get { return _pendingComments.Value; } set { _pendingComments.Value = value; } } - - public bool CommentsShown { - get { return Record.CommentsShown; } - set { Record.CommentsShown = value; } - } - - public bool CommentsActive { - get { return Record.CommentsActive; } - set { Record.CommentsActive = value; } - } - } -} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Comments/Orchard.Comments.csproj b/src/Orchard.Web/Modules/Orchard.Comments/Orchard.Comments.csproj index 3b9ba2a06..2227a77dc 100644 --- a/src/Orchard.Web/Modules/Orchard.Comments/Orchard.Comments.csproj +++ b/src/Orchard.Web/Modules/Orchard.Comments/Orchard.Comments.csproj @@ -73,28 +73,28 @@ - - - + + + - - + + - + - - + + - - - - - + + + + + @@ -111,11 +111,11 @@ - + - + diff --git a/src/Orchard.Web/Modules/Orchard.Comments/Services/CommentService.cs b/src/Orchard.Web/Modules/Orchard.Comments/Services/CommentService.cs index 427d88ec1..241974453 100644 --- a/src/Orchard.Web/Modules/Orchard.Comments/Services/CommentService.cs +++ b/src/Orchard.Web/Modules/Orchard.Comments/Services/CommentService.cs @@ -32,36 +32,36 @@ namespace Orchard.Comments.Services { public ILogger Logger { get; set; } protected virtual IUser CurrentUser { get; [UsedImplicitly] private set; } - public IEnumerable GetComments() { + public IEnumerable GetComments() { return _contentManager - .Query() + .Query() .List(); } - public IEnumerable GetComments(CommentStatus status) { + public IEnumerable GetComments(CommentStatus status) { return _contentManager - .Query() + .Query() .Where(c => c.Status == status) .List(); } - public IEnumerable GetCommentsForCommentedContent(int id) { + public IEnumerable GetCommentsForCommentedContent(int id) { return _contentManager - .Query() + .Query() .Where(c => c.CommentedOn == id || c.CommentedOnContainer == id) .List(); } - public IEnumerable GetCommentsForCommentedContent(int id, CommentStatus status) { + public IEnumerable GetCommentsForCommentedContent(int id, CommentStatus status) { return _contentManager - .Query() + .Query() .Where(c => c.CommentedOn == id || c.CommentedOnContainer == id) .Where(ctx => ctx.Status == status) .List(); } - public Comment GetComment(int id) { - return _contentManager.Get(id); + public CommentPart GetComment(int id) { + return _contentManager.Get(id); } public ContentItemMetadata GetDisplayForCommentedContent(int id) { @@ -71,8 +71,8 @@ namespace Orchard.Comments.Services { return _contentManager.GetItemMetadata(content); } - public Comment CreateComment(CreateCommentContext context, bool moderateComments) { - var comment = _contentManager.Create(CommentDriver.ContentType.Name); + public CommentPart CreateComment(CreateCommentContext context, bool moderateComments) { + var comment = _contentManager.Create(CommentPartDriver.ContentType.Name); comment.Record.Author = context.Author; comment.Record.CommentDateUtc = _clock.UtcNow; @@ -95,27 +95,27 @@ namespace Orchard.Comments.Services { } public void UpdateComment(int id, string name, string email, string siteName, string commentText, CommentStatus status) { - Comment comment = GetComment(id); - comment.Record.Author = name; - comment.Record.Email = email; - comment.Record.SiteName = siteName; - comment.Record.CommentText = commentText; - comment.Record.Status = status; + CommentPart commentPart = GetComment(id); + commentPart.Record.Author = name; + commentPart.Record.Email = email; + commentPart.Record.SiteName = siteName; + commentPart.Record.CommentText = commentText; + commentPart.Record.Status = status; } public void ApproveComment(int commentId) { - Comment comment = GetComment(commentId); - comment.Record.Status = CommentStatus.Approved; + CommentPart commentPart = GetComment(commentId); + commentPart.Record.Status = CommentStatus.Approved; } public void PendComment(int commentId) { - Comment comment = GetComment(commentId); - comment.Record.Status = CommentStatus.Pending; + CommentPart commentPart = GetComment(commentId); + commentPart.Record.Status = CommentStatus.Pending; } public void MarkCommentAsSpam(int commentId) { - Comment comment = GetComment(commentId); - comment.Record.Status = CommentStatus.Spam; + CommentPart commentPart = GetComment(commentId); + commentPart.Record.Status = CommentStatus.Spam; } public void DeleteComment(int commentId) { diff --git a/src/Orchard.Web/Modules/Orchard.Comments/Services/CommentValidator.cs b/src/Orchard.Web/Modules/Orchard.Comments/Services/CommentValidator.cs index 215b6ef94..599ca38a3 100644 --- a/src/Orchard.Web/Modules/Orchard.Comments/Services/CommentValidator.cs +++ b/src/Orchard.Web/Modules/Orchard.Comments/Services/CommentValidator.cs @@ -25,11 +25,11 @@ namespace Orchard.Comments.Services { public Localizer T { get; set; } protected virtual ISite CurrentSite { get; [UsedImplicitly] private set; } - public bool ValidateComment(Comment comment) { - CommentSettingsRecord commentSettingsRecord = CurrentSite.As().Record; - string akismetKey = commentSettingsRecord.AkismetKey; - string akismetUrl = commentSettingsRecord.AkismetUrl; - bool enableSpamProtection = commentSettingsRecord.EnableSpamProtection; + public bool ValidateComment(CommentPart commentPart) { + CommentSettingsPartRecord commentSettingsPartRecord = CurrentSite.As().Record; + string akismetKey = commentSettingsPartRecord.AkismetKey; + string akismetUrl = commentSettingsPartRecord.AkismetUrl; + bool enableSpamProtection = commentSettingsPartRecord.EnableSpamProtection; if (enableSpamProtection == false) { return true; } @@ -42,11 +42,11 @@ namespace Orchard.Comments.Services { } Akismet akismetApi = new Akismet(akismetKey, akismetUrl, null); AkismetComment akismetComment = new AkismetComment { - CommentAuthor = comment.Record.Author, - CommentAuthorEmail = comment.Record.Email, - Blog = comment.Record.SiteName, - CommentAuthorUrl = comment.Record.SiteName, - CommentContent = comment.Record.CommentText, + CommentAuthor = commentPart.Record.Author, + CommentAuthorEmail = commentPart.Record.Email, + Blog = commentPart.Record.SiteName, + CommentAuthorUrl = commentPart.Record.SiteName, + CommentContent = commentPart.Record.CommentText, UserAgent = HttpContext.Current.Request.UserAgent, }; diff --git a/src/Orchard.Web/Modules/Orchard.Comments/Services/ICommentService.cs b/src/Orchard.Web/Modules/Orchard.Comments/Services/ICommentService.cs index 42b79c27a..2eb7106e5 100644 --- a/src/Orchard.Web/Modules/Orchard.Comments/Services/ICommentService.cs +++ b/src/Orchard.Web/Modules/Orchard.Comments/Services/ICommentService.cs @@ -4,13 +4,13 @@ using Orchard.ContentManagement; namespace Orchard.Comments.Services { public interface ICommentService : IDependency { - IEnumerable GetComments(); - IEnumerable GetComments(CommentStatus status); - IEnumerable GetCommentsForCommentedContent(int id); - IEnumerable GetCommentsForCommentedContent(int id, CommentStatus status); - Comment GetComment(int id); + IEnumerable GetComments(); + IEnumerable GetComments(CommentStatus status); + IEnumerable GetCommentsForCommentedContent(int id); + IEnumerable GetCommentsForCommentedContent(int id, CommentStatus status); + CommentPart GetComment(int id); ContentItemMetadata GetDisplayForCommentedContent(int id); - Comment CreateComment(CreateCommentContext commentRecord, bool moderateComments); + CommentPart CreateComment(CreateCommentContext commentRecord, bool moderateComments); void UpdateComment(int id, string name, string email, string siteName, string commentText, CommentStatus status); void ApproveComment(int commentId); void PendComment(int commentId); diff --git a/src/Orchard.Web/Modules/Orchard.Comments/Services/ICommentValidator.cs b/src/Orchard.Web/Modules/Orchard.Comments/Services/ICommentValidator.cs index 000df27d9..aadea8732 100644 --- a/src/Orchard.Web/Modules/Orchard.Comments/Services/ICommentValidator.cs +++ b/src/Orchard.Web/Modules/Orchard.Comments/Services/ICommentValidator.cs @@ -2,6 +2,6 @@ using Orchard.Comments.Models; namespace Orchard.Comments.Services { public interface ICommentValidator : IDependency { - bool ValidateComment(Comment comment); + bool ValidateComment(CommentPart commentPart); } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Comments/ViewModels/CommentCountViewModel.cs b/src/Orchard.Web/Modules/Orchard.Comments/ViewModels/CommentCountViewModel.cs index b11707aca..a94b9bc55 100644 --- a/src/Orchard.Web/Modules/Orchard.Comments/ViewModels/CommentCountViewModel.cs +++ b/src/Orchard.Web/Modules/Orchard.Comments/ViewModels/CommentCountViewModel.cs @@ -6,7 +6,7 @@ namespace Orchard.Comments.ViewModels { public CommentCountViewModel() { } - public CommentCountViewModel(HasComments part) { + public CommentCountViewModel(CommentsPart part) { Item = part.ContentItem; CommentCount = part.Comments.Count; PendingCount = part.PendingComments.Count; diff --git a/src/Orchard.Web/Modules/Orchard.Comments/ViewModels/CommentsIndexViewModel.cs b/src/Orchard.Web/Modules/Orchard.Comments/ViewModels/CommentsIndexViewModel.cs index 691d00f3d..c464bc4d6 100644 --- a/src/Orchard.Web/Modules/Orchard.Comments/ViewModels/CommentsIndexViewModel.cs +++ b/src/Orchard.Web/Modules/Orchard.Comments/ViewModels/CommentsIndexViewModel.cs @@ -9,7 +9,7 @@ namespace Orchard.Comments.ViewModels { } public class CommentEntry { - public CommentRecord Comment { get; set; } + public CommentPartRecord Comment { get; set; } public string CommentedOn { get; set; } public bool IsChecked { get; set; } } diff --git a/src/Orchard.Web/Modules/Orchard.Comments/Views/DisplayTemplates/Parts/Comments.HasComments.ascx b/src/Orchard.Web/Modules/Orchard.Comments/Views/DisplayTemplates/Parts/Comments.Comments.ascx similarity index 97% rename from src/Orchard.Web/Modules/Orchard.Comments/Views/DisplayTemplates/Parts/Comments.HasComments.ascx rename to src/Orchard.Web/Modules/Orchard.Comments/Views/DisplayTemplates/Parts/Comments.Comments.ascx index 8a50ccd48..8866389f1 100644 --- a/src/Orchard.Web/Modules/Orchard.Comments/Views/DisplayTemplates/Parts/Comments.HasComments.ascx +++ b/src/Orchard.Web/Modules/Orchard.Comments/Views/DisplayTemplates/Parts/Comments.Comments.ascx @@ -1,4 +1,4 @@ -<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl" %> +<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl" %> <%@ Import Namespace="Orchard.Comments"%> <%@ Import Namespace="Orchard.Security" %> <%@ Import Namespace="Orchard.Comments.Models" %> diff --git a/src/Orchard.Web/Modules/Orchard.Comments/Views/EditorTemplates/Parts/Comments.HasComments.ascx b/src/Orchard.Web/Modules/Orchard.Comments/Views/EditorTemplates/Parts/Comments.Comments.ascx similarity index 97% rename from src/Orchard.Web/Modules/Orchard.Comments/Views/EditorTemplates/Parts/Comments.HasComments.ascx rename to src/Orchard.Web/Modules/Orchard.Comments/Views/EditorTemplates/Parts/Comments.Comments.ascx index 3480a651f..8f532d9e6 100644 --- a/src/Orchard.Web/Modules/Orchard.Comments/Views/EditorTemplates/Parts/Comments.HasComments.ascx +++ b/src/Orchard.Web/Modules/Orchard.Comments/Views/EditorTemplates/Parts/Comments.Comments.ascx @@ -1,4 +1,4 @@ -<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl" %> +<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl" %> <%@ Import Namespace="Orchard.Comments.Extensions"%> <%@ Import Namespace="Orchard.Localization" %> <%@ Import Namespace="Orchard.Comments.Models" %> diff --git a/src/Orchard.Web/Modules/Orchard.Comments/Views/EditorTemplates/Parts/Comments.SiteSettings.ascx b/src/Orchard.Web/Modules/Orchard.Comments/Views/EditorTemplates/Parts/Comments.SiteSettings.ascx index 4174918fe..812c55af9 100644 --- a/src/Orchard.Web/Modules/Orchard.Comments/Views/EditorTemplates/Parts/Comments.SiteSettings.ascx +++ b/src/Orchard.Web/Modules/Orchard.Comments/Views/EditorTemplates/Parts/Comments.SiteSettings.ascx @@ -1,4 +1,4 @@ -<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl" %> +<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl" %> <%@ Import Namespace="Orchard.Comments.Models"%>
<%: T("Comments")%> diff --git a/src/Orchard.Web/Modules/Orchard.Comments/Views/ListOfComments.ascx b/src/Orchard.Web/Modules/Orchard.Comments/Views/ListOfComments.ascx index 807ca2925..f4155a442 100644 --- a/src/Orchard.Web/Modules/Orchard.Comments/Views/ListOfComments.ascx +++ b/src/Orchard.Web/Modules/Orchard.Comments/Views/ListOfComments.ascx @@ -1,4 +1,4 @@ -<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl>" %> +<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl>" %> <%@ Import Namespace="Orchard.Comments.Models"%>
    <% foreach (var comment in Model) { %> diff --git a/src/Orchard.Web/Modules/Orchard.Setup/Services/SetupService.cs b/src/Orchard.Web/Modules/Orchard.Setup/Services/SetupService.cs index 95c334348..11ec469f5 100644 --- a/src/Orchard.Web/Modules/Orchard.Setup/Services/SetupService.cs +++ b/src/Orchard.Web/Modules/Orchard.Setup/Services/SetupService.cs @@ -191,7 +191,7 @@ namespace Orchard.Setup.Services { var contentDefinitionManager = environment.Resolve(); contentDefinitionManager.AlterTypeDefinition("BlogPost", cfg => cfg .DisplayedAs("Blog Post") - .WithPart("HasComments") + .WithPart("CommentsPart") .WithPart("HasTags") .WithPart("Localized") .Indexed()); @@ -201,7 +201,7 @@ namespace Orchard.Setup.Services { .WithPart("PublishLaterPart") .WithPart("IsRoutable") .WithPart("BodyPart") - .WithPart("HasComments") + .WithPart("CommentsPart") .WithPart("HasTags") .WithPart("Localized") .Indexed()); @@ -215,8 +215,8 @@ namespace Orchard.Setup.Services { page.As().Path = "home"; page.As().Title = T("Home").ToString(); page.As().Owner = user; - if (page.Has()) { - page.As().CommentsShown = false; + if (page.Has()) { + page.As().CommentsShown = false; } contentManager.Publish(page); siteSettings.Record.HomePage = "RoutableHomePageProvider;" + page.Id; diff --git a/src/Orchard.Web/Orchard.Web.csproj b/src/Orchard.Web/Orchard.Web.csproj index 418b2a79b..adb1cc542 100644 --- a/src/Orchard.Web/Orchard.Web.csproj +++ b/src/Orchard.Web/Orchard.Web.csproj @@ -195,7 +195,7 @@ - + @@ -239,7 +239,7 @@ - + diff --git a/src/Orchard.Web/Themes/Classic/Views/DisplayTemplates/Items/Blogs.BlogPost.Summary.ascx b/src/Orchard.Web/Themes/Classic/Views/DisplayTemplates/Items/Blogs.BlogPost.Summary.ascx index 351e7b8e8..084f3a86c 100644 --- a/src/Orchard.Web/Themes/Classic/Views/DisplayTemplates/Items/Blogs.BlogPost.Summary.ascx +++ b/src/Orchard.Web/Themes/Classic/Views/DisplayTemplates/Items/Blogs.BlogPost.Summary.ascx @@ -1,4 +1,4 @@ -<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl>" %> +<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl>" %> <%@ Import Namespace="Orchard.Mvc.ViewModels"%> <%@ Import Namespace="Orchard.Blogs.Extensions"%> <%@ Import Namespace="Orchard.Blogs.Models"%> diff --git a/src/Orchard.Web/Themes/Classic/Views/DisplayTemplates/Items/Blogs.BlogPost.ascx b/src/Orchard.Web/Themes/Classic/Views/DisplayTemplates/Items/Blogs.BlogPost.ascx index 43fc273e3..4f403f96c 100644 --- a/src/Orchard.Web/Themes/Classic/Views/DisplayTemplates/Items/Blogs.BlogPost.ascx +++ b/src/Orchard.Web/Themes/Classic/Views/DisplayTemplates/Items/Blogs.BlogPost.ascx @@ -1,4 +1,4 @@ -<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl>" %> +<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl>" %> <%@ Import Namespace="Orchard.Mvc.ViewModels"%> <%@ Import Namespace="Orchard.Blogs.Models"%>

    <%: Html.TitleForPage(Model.Item.Title)%>

    diff --git a/src/Orchard.Web/Themes/Classic/Views/DisplayTemplates/Parts/Blogs.BlogPost.Metadata.ascx b/src/Orchard.Web/Themes/Classic/Views/DisplayTemplates/Parts/Blogs.BlogPost.Metadata.ascx index 90ff7989d..55c302473 100644 --- a/src/Orchard.Web/Themes/Classic/Views/DisplayTemplates/Parts/Blogs.BlogPost.Metadata.ascx +++ b/src/Orchard.Web/Themes/Classic/Views/DisplayTemplates/Parts/Blogs.BlogPost.Metadata.ascx @@ -1,4 +1,4 @@ -<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl" %> +<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl" %> <%@ Import Namespace="Orchard.Blogs.Extensions"%> <%@ Import Namespace="Orchard.Blogs.Models"%> <%@ Import Namespace="Orchard.Core.Common.Extensions" %><% diff --git a/src/Orchard.Web/Themes/Classic/Views/ZoneTest.ascx b/src/Orchard.Web/Themes/Classic/Views/ZoneTest.ascx index 32dad3b90..9d33ac9ec 100644 --- a/src/Orchard.Web/Themes/Classic/Views/ZoneTest.ascx +++ b/src/Orchard.Web/Themes/Classic/Views/ZoneTest.ascx @@ -1,3 +1,3 @@ -<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl>" %> +<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl>" %> <%@ Import Namespace="Orchard.Blogs.Models"%> <%@ Import Namespace="Orchard.Mvc.ViewModels"%> diff --git a/src/Orchard.Web/Themes/ClassicDark/Views/DisplayTemplates/Items/Blogs.BlogPost.Summary.ascx b/src/Orchard.Web/Themes/ClassicDark/Views/DisplayTemplates/Items/Blogs.BlogPost.Summary.ascx index 351e7b8e8..084f3a86c 100644 --- a/src/Orchard.Web/Themes/ClassicDark/Views/DisplayTemplates/Items/Blogs.BlogPost.Summary.ascx +++ b/src/Orchard.Web/Themes/ClassicDark/Views/DisplayTemplates/Items/Blogs.BlogPost.Summary.ascx @@ -1,4 +1,4 @@ -<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl>" %> +<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl>" %> <%@ Import Namespace="Orchard.Mvc.ViewModels"%> <%@ Import Namespace="Orchard.Blogs.Extensions"%> <%@ Import Namespace="Orchard.Blogs.Models"%> diff --git a/src/Orchard.Web/Themes/ClassicDark/Views/DisplayTemplates/Items/Blogs.BlogPost.ascx b/src/Orchard.Web/Themes/ClassicDark/Views/DisplayTemplates/Items/Blogs.BlogPost.ascx index 43fc273e3..4f403f96c 100644 --- a/src/Orchard.Web/Themes/ClassicDark/Views/DisplayTemplates/Items/Blogs.BlogPost.ascx +++ b/src/Orchard.Web/Themes/ClassicDark/Views/DisplayTemplates/Items/Blogs.BlogPost.ascx @@ -1,4 +1,4 @@ -<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl>" %> +<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl>" %> <%@ Import Namespace="Orchard.Mvc.ViewModels"%> <%@ Import Namespace="Orchard.Blogs.Models"%>

    <%: Html.TitleForPage(Model.Item.Title)%>

    diff --git a/src/Orchard.Web/Themes/ClassicDark/Views/DisplayTemplates/Parts/Blogs.BlogPost.Metadata.ascx b/src/Orchard.Web/Themes/ClassicDark/Views/DisplayTemplates/Parts/Blogs.BlogPost.Metadata.ascx index 90ff7989d..55c302473 100644 --- a/src/Orchard.Web/Themes/ClassicDark/Views/DisplayTemplates/Parts/Blogs.BlogPost.Metadata.ascx +++ b/src/Orchard.Web/Themes/ClassicDark/Views/DisplayTemplates/Parts/Blogs.BlogPost.Metadata.ascx @@ -1,4 +1,4 @@ -<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl" %> +<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl" %> <%@ Import Namespace="Orchard.Blogs.Extensions"%> <%@ Import Namespace="Orchard.Blogs.Models"%> <%@ Import Namespace="Orchard.Core.Common.Extensions" %><% diff --git a/src/Orchard.Web/Themes/ClassicDark/Views/ZoneTest.ascx b/src/Orchard.Web/Themes/ClassicDark/Views/ZoneTest.ascx index 32dad3b90..9d33ac9ec 100644 --- a/src/Orchard.Web/Themes/ClassicDark/Views/ZoneTest.ascx +++ b/src/Orchard.Web/Themes/ClassicDark/Views/ZoneTest.ascx @@ -1,3 +1,3 @@ -<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl>" %> +<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl>" %> <%@ Import Namespace="Orchard.Blogs.Models"%> <%@ Import Namespace="Orchard.Mvc.ViewModels"%> diff --git a/src/Orchard.Web/Themes/Contoso/Views/DisplayTemplates/Items/Blogs.BlogPost.ascx b/src/Orchard.Web/Themes/Contoso/Views/DisplayTemplates/Items/Blogs.BlogPost.ascx index 6cce1c3f7..e0360b7e7 100644 --- a/src/Orchard.Web/Themes/Contoso/Views/DisplayTemplates/Items/Blogs.BlogPost.ascx +++ b/src/Orchard.Web/Themes/Contoso/Views/DisplayTemplates/Items/Blogs.BlogPost.ascx @@ -1,4 +1,4 @@ -<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl>" %> +<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl>" %> <%@ Import Namespace="Orchard.Mvc.ViewModels"%> <%@ Import Namespace="Orchard.Blogs.Extensions"%> <%@ Import Namespace="Orchard.Blogs.Models"%> diff --git a/src/Orchard.Web/Themes/Contoso/Views/DisplayTemplates/Parts/Comments.HasComments.ascx b/src/Orchard.Web/Themes/Contoso/Views/DisplayTemplates/Parts/Comments.Comments.ascx similarity index 97% rename from src/Orchard.Web/Themes/Contoso/Views/DisplayTemplates/Parts/Comments.HasComments.ascx rename to src/Orchard.Web/Themes/Contoso/Views/DisplayTemplates/Parts/Comments.Comments.ascx index ad5ee5532..f78781436 100644 --- a/src/Orchard.Web/Themes/Contoso/Views/DisplayTemplates/Parts/Comments.HasComments.ascx +++ b/src/Orchard.Web/Themes/Contoso/Views/DisplayTemplates/Parts/Comments.Comments.ascx @@ -1,4 +1,4 @@ -<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl" %> +<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl" %> <%@ Import Namespace="Orchard.Comments"%> <%@ Import Namespace="Orchard.Security" %> <%@ Import Namespace="Orchard.Comments.Models" %> diff --git a/src/Orchard.Web/Themes/Contoso/Views/ListOfComments.ascx b/src/Orchard.Web/Themes/Contoso/Views/ListOfComments.ascx index 2270ca602..8495e2356 100644 --- a/src/Orchard.Web/Themes/Contoso/Views/ListOfComments.ascx +++ b/src/Orchard.Web/Themes/Contoso/Views/ListOfComments.ascx @@ -1,4 +1,4 @@ -<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl>" %> +<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl>" %> <%@ Import Namespace="Orchard.Comments.Models"%>
      <% foreach (var comment in Model) { %> diff --git a/src/Orchard.Web/Themes/Corporate/Views/DisplayTemplates/Items/Blogs.BlogPost.ascx b/src/Orchard.Web/Themes/Corporate/Views/DisplayTemplates/Items/Blogs.BlogPost.ascx index 6cce1c3f7..e0360b7e7 100644 --- a/src/Orchard.Web/Themes/Corporate/Views/DisplayTemplates/Items/Blogs.BlogPost.ascx +++ b/src/Orchard.Web/Themes/Corporate/Views/DisplayTemplates/Items/Blogs.BlogPost.ascx @@ -1,4 +1,4 @@ -<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl>" %> +<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl>" %> <%@ Import Namespace="Orchard.Mvc.ViewModels"%> <%@ Import Namespace="Orchard.Blogs.Extensions"%> <%@ Import Namespace="Orchard.Blogs.Models"%> diff --git a/src/Orchard.Web/Themes/Corporate/Views/DisplayTemplates/Parts/Comments.HasComments.ascx b/src/Orchard.Web/Themes/Corporate/Views/DisplayTemplates/Parts/Comments.Comments.ascx similarity index 97% rename from src/Orchard.Web/Themes/Corporate/Views/DisplayTemplates/Parts/Comments.HasComments.ascx rename to src/Orchard.Web/Themes/Corporate/Views/DisplayTemplates/Parts/Comments.Comments.ascx index 3ec26228e..88629b6aa 100644 --- a/src/Orchard.Web/Themes/Corporate/Views/DisplayTemplates/Parts/Comments.HasComments.ascx +++ b/src/Orchard.Web/Themes/Corporate/Views/DisplayTemplates/Parts/Comments.Comments.ascx @@ -1,4 +1,4 @@ -<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl" %> +<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl" %> <%@ Import Namespace="Orchard.Comments"%> <%@ Import Namespace="Orchard.Security" %> <%@ Import Namespace="Orchard.Comments.Models" %> diff --git a/src/Orchard.Web/Themes/Corporate/Views/ListOfComments.ascx b/src/Orchard.Web/Themes/Corporate/Views/ListOfComments.ascx index 113c348ef..ed920dfd1 100644 --- a/src/Orchard.Web/Themes/Corporate/Views/ListOfComments.ascx +++ b/src/Orchard.Web/Themes/Corporate/Views/ListOfComments.ascx @@ -1,4 +1,4 @@ -<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl>" %> +<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl>" %> <%@ Import Namespace="Orchard.Comments.Models"%>
        <% foreach (var comment in Model) { %> diff --git a/src/Orchard.Web/Themes/Green/Views/DisplayTemplates/Items/Blogs.BlogPost.Summary.ascx b/src/Orchard.Web/Themes/Green/Views/DisplayTemplates/Items/Blogs.BlogPost.Summary.ascx index a4a01c525..2d2a553bd 100644 --- a/src/Orchard.Web/Themes/Green/Views/DisplayTemplates/Items/Blogs.BlogPost.Summary.ascx +++ b/src/Orchard.Web/Themes/Green/Views/DisplayTemplates/Items/Blogs.BlogPost.Summary.ascx @@ -1,4 +1,4 @@ -<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl>" %> +<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl>" %> <%@ Import Namespace="Orchard.Mvc.ViewModels"%> <%@ Import Namespace="Orchard.Blogs.Extensions"%> <%@ Import Namespace="Orchard.Blogs.Models"%> diff --git a/src/Orchard.Web/Themes/Green/Views/DisplayTemplates/Items/Blogs.BlogPost.ascx b/src/Orchard.Web/Themes/Green/Views/DisplayTemplates/Items/Blogs.BlogPost.ascx index 456617eaa..d279fb8ba 100644 --- a/src/Orchard.Web/Themes/Green/Views/DisplayTemplates/Items/Blogs.BlogPost.ascx +++ b/src/Orchard.Web/Themes/Green/Views/DisplayTemplates/Items/Blogs.BlogPost.ascx @@ -1,4 +1,4 @@ -<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl>" %> +<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl>" %> <%@ Import Namespace="Orchard.Mvc.ViewModels"%> <%@ Import Namespace="Orchard.Blogs.Models"%>

        <%: Html.TitleForPage(Model.Item.Title)%>

        diff --git a/src/Orchard.Web/Themes/Green/Views/DisplayTemplates/Parts/Blogs.BlogPost.Metadata.ascx b/src/Orchard.Web/Themes/Green/Views/DisplayTemplates/Parts/Blogs.BlogPost.Metadata.ascx index 90ff7989d..55c302473 100644 --- a/src/Orchard.Web/Themes/Green/Views/DisplayTemplates/Parts/Blogs.BlogPost.Metadata.ascx +++ b/src/Orchard.Web/Themes/Green/Views/DisplayTemplates/Parts/Blogs.BlogPost.Metadata.ascx @@ -1,4 +1,4 @@ -<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl" %> +<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl" %> <%@ Import Namespace="Orchard.Blogs.Extensions"%> <%@ Import Namespace="Orchard.Blogs.Models"%> <%@ Import Namespace="Orchard.Core.Common.Extensions" %><% diff --git a/src/Orchard.Web/Themes/Green/Views/ListOfComments.ascx b/src/Orchard.Web/Themes/Green/Views/ListOfComments.ascx index 58fd34577..cfc433e7c 100644 --- a/src/Orchard.Web/Themes/Green/Views/ListOfComments.ascx +++ b/src/Orchard.Web/Themes/Green/Views/ListOfComments.ascx @@ -1,4 +1,4 @@ -<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl>" %> +<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl>" %> <%@ Import Namespace="Orchard.Comments.Models"%>
          <% foreach (var comment in Model) { %> diff --git a/src/Tools/MSBuild.Orchard.Tasks.Tests/TestData/SimpleWebProject.xml b/src/Tools/MSBuild.Orchard.Tasks.Tests/TestData/SimpleWebProject.xml index def2347eb..328787199 100644 --- a/src/Tools/MSBuild.Orchard.Tasks.Tests/TestData/SimpleWebProject.xml +++ b/src/Tools/MSBuild.Orchard.Tasks.Tests/TestData/SimpleWebProject.xml @@ -198,7 +198,7 @@ - + From 118311ced5b576cd94ff09e34f3200e588d0bc32 Mon Sep 17 00:00:00 2001 From: Nathan Heskew Date: Thu, 22 Jul 2010 14:16:10 -0700 Subject: [PATCH 2/4] MediaSettings -> MediaSettingsPart - updating part names to conform to a Part convention --HG-- branch : dev rename : src/Orchard.Web/Modules/Orchard.Media/Handlers/MediaSettingsHandler.cs => src/Orchard.Web/Modules/Orchard.Media/Handlers/MediaSettingsPartHandler.cs rename : src/Orchard.Web/Modules/Orchard.Media/Models/MediaSettings.cs => src/Orchard.Web/Modules/Orchard.Media/Models/MediaSettingsPart.cs rename : src/Orchard.Web/Modules/Orchard.Media/Models/MediaSettingsRecord.cs => src/Orchard.Web/Modules/Orchard.Media/Models/MediaSettingsPartRecord.cs --- .../DataMigrations/MediaDataMigration.cs | 4 ++-- .../Handlers/MediaSettingsHandler.cs | 18 ------------------ .../Handlers/MediaSettingsPartHandler.cs | 18 ++++++++++++++++++ .../Orchard.Media/Models/MediaSettings.cs | 6 ------ .../Orchard.Media/Models/MediaSettingsPart.cs | 6 ++++++ ...ngsRecord.cs => MediaSettingsPartRecord.cs} | 2 +- .../Modules/Orchard.Media/Orchard.Media.csproj | 6 +++--- .../Parts/Media.SiteSettings.ascx | 2 +- 8 files changed, 31 insertions(+), 31 deletions(-) delete mode 100644 src/Orchard.Web/Modules/Orchard.Media/Handlers/MediaSettingsHandler.cs create mode 100644 src/Orchard.Web/Modules/Orchard.Media/Handlers/MediaSettingsPartHandler.cs delete mode 100644 src/Orchard.Web/Modules/Orchard.Media/Models/MediaSettings.cs create mode 100644 src/Orchard.Web/Modules/Orchard.Media/Models/MediaSettingsPart.cs rename src/Orchard.Web/Modules/Orchard.Media/Models/{MediaSettingsRecord.cs => MediaSettingsPartRecord.cs} (67%) diff --git a/src/Orchard.Web/Modules/Orchard.Media/DataMigrations/MediaDataMigration.cs b/src/Orchard.Web/Modules/Orchard.Media/DataMigrations/MediaDataMigration.cs index b60a81f98..39520f791 100644 --- a/src/Orchard.Web/Modules/Orchard.Media/DataMigrations/MediaDataMigration.cs +++ b/src/Orchard.Web/Modules/Orchard.Media/DataMigrations/MediaDataMigration.cs @@ -5,7 +5,7 @@ namespace Orchard.Media.DataMigrations { public int Create() { //CREATE TABLE Orchard_Media_MediaSettingsRecord (Id INTEGER not null, RootMediaFolder TEXT, primary key (Id)); - SchemaBuilder.CreateTable("MediaSettingsRecord", table => table + SchemaBuilder.CreateTable("MediaSettingsPartRecord", table => table .ContentPartRecord() .Column("RootMediaFolder") ); @@ -14,7 +14,7 @@ namespace Orchard.Media.DataMigrations { } public int UpdateFrom1() { - // Filters.Add(new ActivatingFilter("Site")); + // Filters.Add(new ActivatingFilter("Site")); return 2; } diff --git a/src/Orchard.Web/Modules/Orchard.Media/Handlers/MediaSettingsHandler.cs b/src/Orchard.Web/Modules/Orchard.Media/Handlers/MediaSettingsHandler.cs deleted file mode 100644 index 9b4b097e6..000000000 --- a/src/Orchard.Web/Modules/Orchard.Media/Handlers/MediaSettingsHandler.cs +++ /dev/null @@ -1,18 +0,0 @@ -using JetBrains.Annotations; -using Orchard.ContentManagement.Handlers; -using Orchard.Data; -using Orchard.Media.Models; - -namespace Orchard.Media.Handlers { - [UsedImplicitly] - public class MediaSettingsHandler : ContentHandler { - public MediaSettingsHandler(IRepository repository) { - Filters.Add(StorageFilter.For(repository) ); - OnInitializing(DefaultSettings); - } - - private static void DefaultSettings(InitializingContentContext context, MediaSettings settings) { - settings.Record.RootMediaFolder = "~/Media"; - } - } -} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Media/Handlers/MediaSettingsPartHandler.cs b/src/Orchard.Web/Modules/Orchard.Media/Handlers/MediaSettingsPartHandler.cs new file mode 100644 index 000000000..2a6d169d0 --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.Media/Handlers/MediaSettingsPartHandler.cs @@ -0,0 +1,18 @@ +using JetBrains.Annotations; +using Orchard.ContentManagement.Handlers; +using Orchard.Data; +using Orchard.Media.Models; + +namespace Orchard.Media.Handlers { + [UsedImplicitly] + public class MediaSettingsPartHandler : ContentHandler { + public MediaSettingsPartHandler(IRepository repository) { + Filters.Add(StorageFilter.For(repository) ); + OnInitializing(DefaultSettings); + } + + private static void DefaultSettings(InitializingContentContext context, MediaSettingsPart settingsPart) { + settingsPart.Record.RootMediaFolder = "~/Media"; + } + } +} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Media/Models/MediaSettings.cs b/src/Orchard.Web/Modules/Orchard.Media/Models/MediaSettings.cs deleted file mode 100644 index 896604a81..000000000 --- a/src/Orchard.Web/Modules/Orchard.Media/Models/MediaSettings.cs +++ /dev/null @@ -1,6 +0,0 @@ -using Orchard.ContentManagement; - -namespace Orchard.Media.Models { - public class MediaSettings : ContentPart { - } -} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Media/Models/MediaSettingsPart.cs b/src/Orchard.Web/Modules/Orchard.Media/Models/MediaSettingsPart.cs new file mode 100644 index 000000000..28be07bd2 --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.Media/Models/MediaSettingsPart.cs @@ -0,0 +1,6 @@ +using Orchard.ContentManagement; + +namespace Orchard.Media.Models { + public class MediaSettingsPart : ContentPart { + } +} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Media/Models/MediaSettingsRecord.cs b/src/Orchard.Web/Modules/Orchard.Media/Models/MediaSettingsPartRecord.cs similarity index 67% rename from src/Orchard.Web/Modules/Orchard.Media/Models/MediaSettingsRecord.cs rename to src/Orchard.Web/Modules/Orchard.Media/Models/MediaSettingsPartRecord.cs index 3fbb1b520..9f8e24159 100644 --- a/src/Orchard.Web/Modules/Orchard.Media/Models/MediaSettingsRecord.cs +++ b/src/Orchard.Web/Modules/Orchard.Media/Models/MediaSettingsPartRecord.cs @@ -1,7 +1,7 @@ using Orchard.ContentManagement.Records; namespace Orchard.Media.Models { - public class MediaSettingsRecord : ContentPartRecord { + public class MediaSettingsPartRecord : ContentPartRecord { public virtual string RootMediaFolder { get; set; } } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Media/Orchard.Media.csproj b/src/Orchard.Web/Modules/Orchard.Media/Orchard.Media.csproj index 778f23a1c..ac3f62731 100644 --- a/src/Orchard.Web/Modules/Orchard.Media/Orchard.Media.csproj +++ b/src/Orchard.Web/Modules/Orchard.Media/Orchard.Media.csproj @@ -73,9 +73,9 @@ - - - + + + diff --git a/src/Orchard.Web/Modules/Orchard.Media/Views/EditorTemplates/Parts/Media.SiteSettings.ascx b/src/Orchard.Web/Modules/Orchard.Media/Views/EditorTemplates/Parts/Media.SiteSettings.ascx index 98bec79da..3515b5869 100644 --- a/src/Orchard.Web/Modules/Orchard.Media/Views/EditorTemplates/Parts/Media.SiteSettings.ascx +++ b/src/Orchard.Web/Modules/Orchard.Media/Views/EditorTemplates/Parts/Media.SiteSettings.ascx @@ -1,4 +1,4 @@ -<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl" %> +<%@ Control Language="C#" Inherits="Orchard.Mvc.ViewUserControl" %> <%@ Import Namespace="Orchard.Media.Models"%>
          <%: T("Media")%> From 77e73c70e10c3e7a09f00c375784f6cb073ebe5b Mon Sep 17 00:00:00 2001 From: Nathan Heskew Date: Thu, 22 Jul 2010 14:33:25 -0700 Subject: [PATCH 3/4] UserRoles -> UserRolesPart - updating part names to conform to a Part convention --HG-- branch : dev rename : src/Orchard.Web/Modules/Orchard.Roles/Drivers/UserRolesDriver.cs => src/Orchard.Web/Modules/Orchard.Roles/Drivers/UserRolesPartDriver.cs rename : src/Orchard.Web/Modules/Orchard.Roles/Handlers/UserRolesHandler.cs => src/Orchard.Web/Modules/Orchard.Roles/Handlers/UserRolesPartHandler.cs rename : src/Orchard.Web/Modules/Orchard.Roles/Models/UserRoles.cs => src/Orchard.Web/Modules/Orchard.Roles/Models/UserRolesPart.cs rename : src/Orchard.Web/Modules/Orchard.Roles/Models/UserRolesRecord.cs => src/Orchard.Web/Modules/Orchard.Roles/Models/UserRolesPartRecord.cs --- .../DataMigrations/RolesDataMigration.cs | 2 +- ...rRolesDriver.cs => UserRolesPartDriver.cs} | 32 +++++++++---------- ...olesHandler.cs => UserRolesPartHandler.cs} | 10 +++--- .../Models/{UserRoles.cs => UserRolesPart.cs} | 4 +-- ...rRolesRecord.cs => UserRolesPartRecord.cs} | 2 +- .../Modules/Orchard.Roles/Module.txt | 1 + .../Orchard.Roles/Orchard.Roles.csproj | 8 ++--- 7 files changed, 30 insertions(+), 29 deletions(-) rename src/Orchard.Web/Modules/Orchard.Roles/Drivers/{UserRolesDriver.cs => UserRolesPartDriver.cs} (79%) rename src/Orchard.Web/Modules/Orchard.Roles/Handlers/{UserRolesHandler.cs => UserRolesPartHandler.cs} (58%) rename src/Orchard.Web/Modules/Orchard.Roles/Models/{UserRoles.cs => UserRolesPart.cs} (66%) rename src/Orchard.Web/Modules/Orchard.Roles/Models/{UserRolesRecord.cs => UserRolesPartRecord.cs} (80%) diff --git a/src/Orchard.Web/Modules/Orchard.Roles/DataMigrations/RolesDataMigration.cs b/src/Orchard.Web/Modules/Orchard.Roles/DataMigrations/RolesDataMigration.cs index af87885e5..43909d2bf 100644 --- a/src/Orchard.Web/Modules/Orchard.Roles/DataMigrations/RolesDataMigration.cs +++ b/src/Orchard.Web/Modules/Orchard.Roles/DataMigrations/RolesDataMigration.cs @@ -27,7 +27,7 @@ namespace Orchard.Roles.DataMigrations { ); //CREATE TABLE Orchard_Roles_UserRolesRecord (Id integer, UserId INTEGER, Role_id INTEGER, primary key (Id)); - SchemaBuilder.CreateTable("UserRolesRecord", table => table + SchemaBuilder.CreateTable("UserRolesPartRecord", table => table .Column("Id", column => column.PrimaryKey().Identity()) .Column("UserId") .Column("Role_id") diff --git a/src/Orchard.Web/Modules/Orchard.Roles/Drivers/UserRolesDriver.cs b/src/Orchard.Web/Modules/Orchard.Roles/Drivers/UserRolesPartDriver.cs similarity index 79% rename from src/Orchard.Web/Modules/Orchard.Roles/Drivers/UserRolesDriver.cs rename to src/Orchard.Web/Modules/Orchard.Roles/Drivers/UserRolesPartDriver.cs index fcbc6a8e1..c7ca2e802 100644 --- a/src/Orchard.Web/Modules/Orchard.Roles/Drivers/UserRolesDriver.cs +++ b/src/Orchard.Web/Modules/Orchard.Roles/Drivers/UserRolesPartDriver.cs @@ -12,15 +12,15 @@ using Orchard.UI.Notify; namespace Orchard.Roles.Drivers { [UsedImplicitly] - public class UserRolesDriver : ContentPartDriver { - private readonly IRepository _userRolesRepository; + public class UserRolesPartDriver : ContentPartDriver { + private readonly IRepository _userRolesRepository; private readonly IRoleService _roleService; private readonly INotifier _notifier; private readonly IAuthenticationService _authenticationService; private readonly IAuthorizationService _authorizationService; - public UserRolesDriver( - IRepository userRolesRepository, + public UserRolesPartDriver( + IRepository userRolesRepository, IRoleService roleService, INotifier notifier, IAuthenticationService authenticationService, @@ -41,9 +41,9 @@ namespace Orchard.Roles.Drivers { public Localizer T { get; set; } - protected override DriverResult Editor(UserRoles userRoles) { + protected override DriverResult Editor(UserRolesPart userRolesPart) { // don't show editor without apply roles permission - if (!_authorizationService.TryCheckAccess(Permissions.ApplyRoles, _authenticationService.GetAuthenticatedUser(), userRoles)) + if (!_authorizationService.TryCheckAccess(Permissions.ApplyRoles, _authenticationService.GetAuthenticatedUser(), userRolesPart)) return null; var roles = @@ -51,25 +51,25 @@ namespace Orchard.Roles.Drivers { x => new UserRoleEntry { RoleId = x.Id, Name = x.Name, - Granted = userRoles.Roles.Contains(x.Name) + Granted = userRolesPart.Roles.Contains(x.Name) }); var model = new UserRolesViewModel { - User = userRoles.As(), - UserRoles = userRoles, + User = userRolesPart.As(), + UserRoles = userRolesPart, Roles = roles.ToList(), }; return ContentPartTemplate(model, "Parts/Roles.UserRoles"); } - protected override DriverResult Editor(UserRoles userRoles, IUpdateModel updater) { + protected override DriverResult Editor(UserRolesPart userRolesPart, IUpdateModel updater) { // don't apply editor without apply roles permission - if (!_authorizationService.TryCheckAccess(Permissions.ApplyRoles, _authenticationService.GetAuthenticatedUser(), userRoles)) + if (!_authorizationService.TryCheckAccess(Permissions.ApplyRoles, _authenticationService.GetAuthenticatedUser(), userRolesPart)) return null; var model = new UserRolesViewModel { - User = userRoles.As(), - UserRoles = userRoles, + User = userRolesPart.As(), + UserRoles = userRolesPart, }; if (updater.TryUpdateModel(model, Prefix, null, null)) { @@ -79,12 +79,12 @@ namespace Orchard.Roles.Drivers { var targetRoleRecords = model.Roles.Where(x => x.Granted).Select(x => _roleService.GetRole(x.RoleId)); foreach (var addingRole in targetRoleRecords.Where(x => !currentRoleRecords.Contains(x))) { - _notifier.Warning(T("Adding role {0} to user {1}", addingRole.Name, userRoles.As().UserName)); - _userRolesRepository.Create(new UserRolesRecord { UserId = model.User.Id, Role = addingRole }); + _notifier.Warning(T("Adding role {0} to user {1}", addingRole.Name, userRolesPart.As().UserName)); + _userRolesRepository.Create(new UserRolesPartRecord { UserId = model.User.Id, Role = addingRole }); } foreach (var removingRole in currentUserRoleRecords.Where(x => !targetRoleRecords.Contains(x.Role))) { - _notifier.Warning(T("Removing role {0} from user {1}", removingRole.Role.Name, userRoles.As().UserName)); + _notifier.Warning(T("Removing role {0} from user {1}", removingRole.Role.Name, userRolesPart.As().UserName)); _userRolesRepository.Delete(removingRole); } diff --git a/src/Orchard.Web/Modules/Orchard.Roles/Handlers/UserRolesHandler.cs b/src/Orchard.Web/Modules/Orchard.Roles/Handlers/UserRolesPartHandler.cs similarity index 58% rename from src/Orchard.Web/Modules/Orchard.Roles/Handlers/UserRolesHandler.cs rename to src/Orchard.Web/Modules/Orchard.Roles/Handlers/UserRolesPartHandler.cs index adf65fe39..9ec4b0bcb 100644 --- a/src/Orchard.Web/Modules/Orchard.Roles/Handlers/UserRolesHandler.cs +++ b/src/Orchard.Web/Modules/Orchard.Roles/Handlers/UserRolesPartHandler.cs @@ -6,14 +6,14 @@ using Orchard.Roles.Models; namespace Orchard.Roles.Handlers { [UsedImplicitly] - public class UserRolesHandler : ContentHandler { - private readonly IRepository _userRolesRepository; + public class UserRolesPartHandler : ContentHandler { + private readonly IRepository _userRolesRepository; - public UserRolesHandler(IRepository userRolesRepository) { + public UserRolesPartHandler(IRepository userRolesRepository) { _userRolesRepository = userRolesRepository; - Filters.Add(new ActivatingFilter("User")); - OnLoaded((context, userRoles) => { + Filters.Add(new ActivatingFilter("User")); + OnLoaded((context, userRoles) => { userRoles.Roles = _userRolesRepository .Fetch(x => x.UserId == context.ContentItem.Id) .Select(x => x.Role.Name).ToList(); diff --git a/src/Orchard.Web/Modules/Orchard.Roles/Models/UserRoles.cs b/src/Orchard.Web/Modules/Orchard.Roles/Models/UserRolesPart.cs similarity index 66% rename from src/Orchard.Web/Modules/Orchard.Roles/Models/UserRoles.cs rename to src/Orchard.Web/Modules/Orchard.Roles/Models/UserRolesPart.cs index e2e07ff81..a9f9de831 100644 --- a/src/Orchard.Web/Modules/Orchard.Roles/Models/UserRoles.cs +++ b/src/Orchard.Web/Modules/Orchard.Roles/Models/UserRolesPart.cs @@ -2,8 +2,8 @@ using System.Collections.Generic; using Orchard.ContentManagement; namespace Orchard.Roles.Models { - public class UserRoles : ContentPart, IUserRoles { - public UserRoles() { + public class UserRolesPart : ContentPart, IUserRoles { + public UserRolesPart() { Roles = new List(); } diff --git a/src/Orchard.Web/Modules/Orchard.Roles/Models/UserRolesRecord.cs b/src/Orchard.Web/Modules/Orchard.Roles/Models/UserRolesPartRecord.cs similarity index 80% rename from src/Orchard.Web/Modules/Orchard.Roles/Models/UserRolesRecord.cs rename to src/Orchard.Web/Modules/Orchard.Roles/Models/UserRolesPartRecord.cs index 5248a9233..e8efa7cb6 100644 --- a/src/Orchard.Web/Modules/Orchard.Roles/Models/UserRolesRecord.cs +++ b/src/Orchard.Web/Modules/Orchard.Roles/Models/UserRolesPartRecord.cs @@ -1,5 +1,5 @@ namespace Orchard.Roles.Models { - public class UserRolesRecord { + public class UserRolesPartRecord { public virtual int Id { get; set; } public virtual int UserId { get; set; } public virtual RoleRecord Role { get; set; } diff --git a/src/Orchard.Web/Modules/Orchard.Roles/Module.txt b/src/Orchard.Web/Modules/Orchard.Roles/Module.txt index 1cfb543f4..2ef95ec69 100644 --- a/src/Orchard.Web/Modules/Orchard.Roles/Module.txt +++ b/src/Orchard.Web/Modules/Orchard.Roles/Module.txt @@ -9,3 +9,4 @@ features: Orchard.Roles: Description: Standard user roles. Category: Core + Dependencies: Orchard.Users \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Roles/Orchard.Roles.csproj b/src/Orchard.Web/Modules/Orchard.Roles/Orchard.Roles.csproj index 4a61ae7a5..bcfeff945 100644 --- a/src/Orchard.Web/Modules/Orchard.Roles/Orchard.Roles.csproj +++ b/src/Orchard.Web/Modules/Orchard.Roles/Orchard.Roles.csproj @@ -68,17 +68,17 @@ - + - - + + - + From 08cc911948625dc2cbadd877bcc50eafc235fa9e Mon Sep 17 00:00:00 2001 From: Nathan Heskew Date: Thu, 22 Jul 2010 15:40:27 -0700 Subject: [PATCH 4/4] Adding some auth checks in content CRUD (from Orchard.Pages) --HG-- branch : dev --- src/Orchard.Web/Core/Common/Permissions.cs | 2 +- .../Security/AuthorizationEventHandler.cs | 57 +++++++++++++++++++ .../Contents/Controllers/AdminController.cs | 53 +++++++++++------ src/Orchard.Web/Core/Contents/Permissions.cs | 2 +- src/Orchard.Web/Core/Orchard.Core.csproj | 1 + 5 files changed, 97 insertions(+), 18 deletions(-) create mode 100644 src/Orchard.Web/Core/Common/Security/AuthorizationEventHandler.cs diff --git a/src/Orchard.Web/Core/Common/Permissions.cs b/src/Orchard.Web/Core/Common/Permissions.cs index b20fb866c..c5b62e6c1 100644 --- a/src/Orchard.Web/Core/Common/Permissions.cs +++ b/src/Orchard.Web/Core/Common/Permissions.cs @@ -20,7 +20,7 @@ namespace Orchard.Core.Common { new PermissionStereotype { Name = "Administrator", Permissions = new[] {ChangeOwner} - } + }, }; } } diff --git a/src/Orchard.Web/Core/Common/Security/AuthorizationEventHandler.cs b/src/Orchard.Web/Core/Common/Security/AuthorizationEventHandler.cs new file mode 100644 index 000000000..fa0beacfb --- /dev/null +++ b/src/Orchard.Web/Core/Common/Security/AuthorizationEventHandler.cs @@ -0,0 +1,57 @@ +using JetBrains.Annotations; +using Orchard.ContentManagement; +using Orchard.ContentManagement.Aspects; +using Orchard.Core.Common.Models; +using Orchard.Security; +using Orchard.Security.Permissions; + +namespace Orchard.Core.Common.Security +{ + [UsedImplicitly] + public class AuthorizationEventHandler : IAuthorizationServiceEventHandler + { + public void Checking(CheckAccessContext context) { } + public void Complete(CheckAccessContext context) { } + + public void Adjust(CheckAccessContext context) + { + if (!context.Granted && + context.Content.Is() && + OwnerVariationExists(context.Permission) && + HasOwnership(context.User, context.Content)) + { + + context.Adjusted = true; + context.Permission = GetOwnerVariation(context.Permission); + } + } + + private static bool HasOwnership(IUser user, IContent content) + { + if (user == null || content == null) + return false; + + var common = content.As(); + if (common == null || common.Owner == null) + return false; + + return user.Id == common.Owner.Id; + } + + private static bool OwnerVariationExists(Permission permission) + { + return GetOwnerVariation(permission) != null; + } + + private static Permission GetOwnerVariation(Permission permission) + { + if (permission.Name == Contents.Permissions.PublishOthersContent.Name) + return Contents.Permissions.PublishContent; + if (permission.Name == Contents.Permissions.EditOthersContent.Name) + return Contents.Permissions.EditContent; + if (permission.Name == Contents.Permissions.DeleteOthersContent.Name) + return Contents.Permissions.DeleteContent; + return null; + } + } +} \ No newline at end of file diff --git a/src/Orchard.Web/Core/Contents/Controllers/AdminController.cs b/src/Orchard.Web/Core/Contents/Controllers/AdminController.cs index c7aef33ee..9b6c89c97 100644 --- a/src/Orchard.Web/Core/Contents/Controllers/AdminController.cs +++ b/src/Orchard.Web/Core/Contents/Controllers/AdminController.cs @@ -134,34 +134,38 @@ 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: - if (!Services.Authorizer.Authorize(Permissions.PublishContent, T("Couldn't publish selected content."))) - return new HttpUnauthorizedResult(); - 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: - if (!Services.Authorizer.Authorize(Permissions.PublishContent, T("Couldn't unpublish selected content."))) - return new HttpUnauthorizedResult(); - 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: - if (!Services.Authorizer.Authorize(Permissions.PublishContent, T("Couldn't delete selected content."))) - return new HttpUnauthorizedResult(); - 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(); } @@ -210,6 +214,10 @@ namespace Orchard.Core.Contents.Controllers { return CreatableTypeList(); var contentItem = _contentManager.New(id); + + if (!Services.Authorizer.Authorize(Permissions.PublishContent, contentItem, T("Cannot create content"))) + return new HttpUnauthorizedResult(); + var model = new CreateItemViewModel { Id = id, Content = _contentManager.BuildEditorModel(contentItem) @@ -221,8 +229,11 @@ namespace Orchard.Core.Contents.Controllers { [HttpPost] public ActionResult Create(CreateItemViewModel model) { - //todo: need to integrate permissions into generic content management var contentItem = _contentManager.New(model.Id); + + if (!Services.Authorizer.Authorize(Permissions.PublishContent, contentItem, T("Couldn't create content"))) + return new HttpUnauthorizedResult(); + _contentManager.Create(contentItem, VersionOptions.Draft); model.Content = _contentManager.UpdateEditorModel(contentItem, this); @@ -246,6 +257,9 @@ namespace Orchard.Core.Contents.Controllers { if (contentItem == null) return new NotFoundResult(); + if (!Services.Authorizer.Authorize(Permissions.EditOthersContent, contentItem, T("Cannot edit content"))) + return new HttpUnauthorizedResult(); + var model = new EditItemViewModel { Id = id, Content = _contentManager.BuildEditorModel(contentItem) @@ -263,6 +277,9 @@ namespace Orchard.Core.Contents.Controllers { if (contentItem == null) return new NotFoundResult(); + if (!Services.Authorizer.Authorize(Permissions.EditOthersContent, contentItem, T("Couldn't edit content"))) + return new HttpUnauthorizedResult(); + model.Content = _contentManager.UpdateEditorModel(contentItem, this); if (!ModelState.IsValid) { _transactionManager.Cancel(); @@ -280,6 +297,10 @@ namespace Orchard.Core.Contents.Controllers { [HttpPost, ActionName("Remove")] public ActionResult RemovePOST(int id, string returnUrl) { var contentItem = _contentManager.Get(id, VersionOptions.Latest); + + if (!Services.Authorizer.Authorize(Permissions.DeleteOthersContent, contentItem, T("Couldn't remove content"))) + return new HttpUnauthorizedResult(); + if (contentItem != null) _contentManager.Remove(contentItem); @@ -291,13 +312,13 @@ namespace Orchard.Core.Contents.Controllers { [HttpPost] public ActionResult Publish(int id, string returnUrl) { - if (!Services.Authorizer.Authorize(Permissions.PublishContent, T("Couldn't publish content"))) - return new HttpUnauthorizedResult(); - var contentItem = _contentManager.GetLatest(id); if (contentItem == null) return new NotFoundResult(); + if (!Services.Authorizer.Authorize(Permissions.PublishContent, contentItem, T("Couldn't publish content"))) + return new HttpUnauthorizedResult(); + _contentManager.Publish(contentItem); Services.ContentManager.Flush(); Services.Notifier.Information(T("{0} successfully published.", contentItem.TypeDefinition.DisplayName)); @@ -310,13 +331,13 @@ namespace Orchard.Core.Contents.Controllers { [HttpPost] public ActionResult Unpublish(int id, string returnUrl) { - if (!Services.Authorizer.Authorize(Permissions.PublishContent, T("Couldn't unpublish content"))) - return new HttpUnauthorizedResult(); - var contentItem = _contentManager.GetLatest(id); if (contentItem == null) return new NotFoundResult(); + if (!Services.Authorizer.Authorize(Permissions.PublishContent, contentItem, T("Couldn't unpublish content"))) + return new HttpUnauthorizedResult(); + _contentManager.Unpublish(contentItem); Services.ContentManager.Flush(); Services.Notifier.Information(T("{0} successfully unpublished.", contentItem.TypeDefinition.DisplayName)); diff --git a/src/Orchard.Web/Core/Contents/Permissions.cs b/src/Orchard.Web/Core/Contents/Permissions.cs index e9f16b824..f6e3f9773 100644 --- a/src/Orchard.Web/Core/Contents/Permissions.cs +++ b/src/Orchard.Web/Core/Contents/Permissions.cs @@ -19,7 +19,7 @@ namespace Orchard.Core.Contents { } public IEnumerable GetPermissions() { - return new Permission[] { + return new [] { EditContent, EditOthersContent, PublishContent, diff --git a/src/Orchard.Web/Core/Orchard.Core.csproj b/src/Orchard.Web/Core/Orchard.Core.csproj index e0a38c22a..2e0c936d3 100644 --- a/src/Orchard.Web/Core/Orchard.Core.csproj +++ b/src/Orchard.Web/Core/Orchard.Core.csproj @@ -67,6 +67,7 @@ +