From 8425b4ad765804495c010e65aa372c3b2ce6048d Mon Sep 17 00:00:00 2001 From: Benedek Farkas Date: Fri, 6 Dec 2024 09:49:45 +0100 Subject: [PATCH 1/3] #8811: Update vulnerable NuGet packages and consolidate them (#8812) * Updating System.IdentityModel.Tokens.Jwt and its dependencies in Orchard.Azure.MediaServices * Using System.IO.Compression instead of DotNetZip * Upgrading Newtonsoft.Json from 12.0.3 (vulnerable) to 13.0.3 * Updating ModuleRootWebConfig.txt codegen template according to the new Newtonsoft.Json version --- CREDITS.txt | 6 --- src/Orchard.Core.Tests/App.config | 2 +- src/Orchard.Specs/App.Config | 2 +- src/Orchard.Tests.Modules/App.config | 2 +- .../Media/Services/MediaServiceTests.cs | 41 ++++++++++--------- .../Orchard.Tests.Modules.csproj | 8 ++-- src/Orchard.Tests.Modules/packages.config | 3 +- src/Orchard.Tests/App.config | 2 +- .../Orchard.Framework.Tests.csproj | 4 +- src/Orchard.Tests/packages.config | 2 +- src/Orchard.Web.Tests/app.config | 2 +- src/Orchard.Web/Core/Web.config | 2 +- src/Orchard.Web/Modules/Lucene/Web.config | 2 +- src/Orchard.Web/Modules/Markdown/Web.config | 2 +- .../Modules/Orchard.Alias/Web.config | 2 +- .../Orchard.AntiSpam/Orchard.AntiSpam.csproj | 6 +-- .../Modules/Orchard.AntiSpam/Web.config | 2 +- .../Modules/Orchard.AntiSpam/packages.config | 4 +- .../Modules/Orchard.ArchiveLater/Web.config | 2 +- .../Orchard.AuditTrail.csproj | 4 +- .../Modules/Orchard.AuditTrail/Web.config | 2 +- .../Orchard.AuditTrail/packages.config | 4 +- .../Modules/Orchard.Autoroute/Web.config | 2 +- .../Orchard.Azure.MediaServices.csproj | 20 ++++----- .../Orchard.Azure.MediaServices/Web.config | 2 +- .../packages.config | 10 ++--- .../Orchard.Azure/Orchard.Azure.csproj | 6 +-- .../Modules/Orchard.Azure/Web.config | 2 +- .../Modules/Orchard.Azure/packages.config | 4 +- .../Modules/Orchard.Blogs/Web.config | 2 +- .../Modules/Orchard.Caching/Web.config | 2 +- .../ModuleRootWebConfig.txt | 2 +- .../Modules/Orchard.CodeGeneration/Web.config | 2 +- .../Modules/Orchard.Comments/Web.config | 2 +- .../Modules/Orchard.Conditions/Web.config | 2 +- .../Orchard.ContentPermissions/Web.config | 2 +- .../Modules/Orchard.ContentPicker/Web.config | 2 +- .../Modules/Orchard.ContentTypes/Web.config | 2 +- .../Modules/Orchard.CustomForms/Web.config | 2 +- .../Modules/Orchard.Dashboards/Web.config | 2 +- .../Modules/Orchard.DesignerTools/Web.config | 2 +- .../Orchard.DynamicForms.csproj | 4 +- .../Modules/Orchard.DynamicForms/Web.config | 2 +- .../Orchard.DynamicForms/packages.config | 2 +- .../Orchard.Email/Orchard.Email.csproj | 4 +- .../Modules/Orchard.Email/Web.config | 2 +- .../Modules/Orchard.Email/packages.config | 2 +- .../Modules/Orchard.Fields/Web.config | 2 +- .../Orchard.Forms/Orchard.Forms.csproj | 6 +-- .../Modules/Orchard.Forms/Web.config | 2 +- .../Modules/Orchard.Forms/packages.config | 4 +- .../Modules/Orchard.ImageEditor/Web.config | 2 +- .../Modules/Orchard.ImportExport/Web.config | 2 +- .../Modules/Orchard.Indexing/Web.config | 2 +- .../Orchard.JobsQueue.csproj | 6 +-- .../Modules/Orchard.JobsQueue/Web.config | 2 +- .../Modules/Orchard.JobsQueue/packages.config | 4 +- .../Orchard.Layouts/Orchard.Layouts.csproj | 4 +- .../Modules/Orchard.Layouts/Web.config | 2 +- .../Modules/Orchard.Layouts/packages.config | 2 +- .../Modules/Orchard.Lists/Web.config | 2 +- .../Modules/Orchard.Localization/Web.config | 2 +- .../Orchard.Media/Orchard.Media.csproj | 6 +-- .../Orchard.Media/Services/MediaService.cs | 30 +++++++------- .../Modules/Orchard.Media/Web.config | 2 +- .../Modules/Orchard.Media/packages.config | 1 - .../Orchard.MediaLibrary.csproj | 6 +-- .../Modules/Orchard.MediaLibrary/Web.config | 2 +- .../Orchard.MediaLibrary/packages.config | 4 +- .../Modules/Orchard.MediaPicker/Web.config | 2 +- .../Orchard.MediaProcessing/Web.config | 2 +- .../Modules/Orchard.MessageBus/Web.config | 2 +- .../Modules/Orchard.Migrations/Web.config | 2 +- .../Modules/Orchard.Modules/Web.config | 2 +- .../Modules/Orchard.MultiTenancy/Web.config | 2 +- .../Modules/Orchard.OutputCache/Web.config | 2 +- .../Modules/Orchard.Packaging/Web.config | 2 +- .../Modules/Orchard.Pages/Web.config | 2 +- .../Orchard.Projections/Tests/app.config | 2 +- .../Modules/Orchard.Projections/Web.config | 2 +- .../Modules/Orchard.PublishLater/Web.config | 2 +- .../Modules/Orchard.Recipes/Web.config | 2 +- .../Orchard.Redis/Orchard.Redis.csproj | 6 +-- .../Modules/Orchard.Redis/Web.config | 2 +- .../Modules/Orchard.Redis/packages.config | 4 +- .../Modules/Orchard.Resources/Web.config | 2 +- .../Modules/Orchard.Roles/Web.config | 2 +- .../Modules/Orchard.Rules/Web.config | 2 +- .../Orchard.Scripting.CSharp/Web.config | 2 +- .../Modules/Orchard.Scripting.Dlr/Web.config | 2 +- .../Modules/Orchard.Scripting/Web.config | 2 +- .../Modules/Orchard.Search/Web.config | 2 +- .../Orchard.SecureSocketsLayer/Web.config | 2 +- .../Modules/Orchard.Setup/Web.config | 2 +- .../Modules/Orchard.Tags/Web.config | 2 +- .../Modules/Orchard.TaskLease/Web.config | 2 +- .../Orchard.Taxonomies.csproj | 6 +-- .../Modules/Orchard.Taxonomies/Web.config | 2 +- .../Orchard.Taxonomies/packages.config | 4 +- .../Modules/Orchard.Templates/Web.config | 2 +- .../Modules/Orchard.Themes/Web.config | 2 +- .../Modules/Orchard.Tokens/Tests/app.config | 2 +- .../Modules/Orchard.Tokens/Web.config | 2 +- .../Modules/Orchard.Users/Web.config | 2 +- .../Modules/Orchard.Warmup/Web.config | 2 +- .../Modules/Orchard.Widgets/Web.config | 2 +- .../Orchard.Workflows.csproj | 6 +-- .../Modules/Orchard.Workflows/Web.config | 2 +- .../Modules/Orchard.Workflows/packages.config | 4 +- .../Modules/Orchard.jQuery/Web.config | 2 +- src/Orchard.Web/Modules/SysCache/Web.config | 2 +- src/Orchard.Web/Modules/TinyMce/Web.config | 2 +- .../Modules/Upgrade/Upgrade.csproj | 4 +- src/Orchard.Web/Modules/Upgrade/Web.config | 2 +- .../Modules/Upgrade/packages.config | 4 +- src/Orchard.Web/Orchard.Web.csproj | 4 +- src/Orchard.Web/Themes/Web.config | 2 +- src/Orchard.Web/Web.config | 2 +- src/Orchard.Web/packages.config | 2 +- src/Orchard/Orchard.Framework.csproj | 4 +- src/Orchard/app.config | 2 +- src/Orchard/packages.config | 2 +- 122 files changed, 203 insertions(+), 216 deletions(-) diff --git a/CREDITS.txt b/CREDITS.txt index f45a44093cd..35b9411f11f 100644 --- a/CREDITS.txt +++ b/CREDITS.txt @@ -52,12 +52,6 @@ Website: http://dlr.codeplex.com Copyright: Copyright (c) Microsoft Corporation License: Apache Software Foundation License 2.0 -DotNetZip ------ -Website: http://dotnetzip.codeplex.com/ -Copyright: -License: MS-PL - Eric Meyer's Reset CSS ----- Website: http://meyerweb.com/eric/tools/css/reset/ diff --git a/src/Orchard.Core.Tests/App.config b/src/Orchard.Core.Tests/App.config index 9493cfeeadf..6ada2cd0163 100644 --- a/src/Orchard.Core.Tests/App.config +++ b/src/Orchard.Core.Tests/App.config @@ -16,7 +16,7 @@ - + diff --git a/src/Orchard.Specs/App.Config b/src/Orchard.Specs/App.Config index ac77472da6f..417d4df69c6 100644 --- a/src/Orchard.Specs/App.Config +++ b/src/Orchard.Specs/App.Config @@ -24,7 +24,7 @@ - + diff --git a/src/Orchard.Tests.Modules/App.config b/src/Orchard.Tests.Modules/App.config index a5baeb2d404..4a4387430fe 100644 --- a/src/Orchard.Tests.Modules/App.config +++ b/src/Orchard.Tests.Modules/App.config @@ -24,7 +24,7 @@ - + diff --git a/src/Orchard.Tests.Modules/Media/Services/MediaServiceTests.cs b/src/Orchard.Tests.Modules/Media/Services/MediaServiceTests.cs index 018772b6fd1..e349829ddff 100644 --- a/src/Orchard.Tests.Modules/Media/Services/MediaServiceTests.cs +++ b/src/Orchard.Tests.Modules/Media/Services/MediaServiceTests.cs @@ -1,8 +1,8 @@ using System; using System.Collections.Generic; using System.IO; +using System.IO.Compression; using System.Linq; -using Ionic.Zip; using NUnit.Framework; using Orchard.Environment.Configuration; using Orchard.FileSystems.Media; @@ -53,10 +53,10 @@ public void GetPublicUrlTests() { [Test] public void GetMediaFoldersTest() { StorageProvider.ListFoldersPredicate = path => { - return string.IsNullOrEmpty(path) ? new[] {new StubStorageFolder(FolderName1)} - : string.Equals(path, FolderName1) ? new[] {new StubStorageFolder(FolderName2), new StubStorageFolder(FolderName3)} + return string.IsNullOrEmpty(path) ? new[] { new StubStorageFolder(FolderName1) } + : string.Equals(path, FolderName1) ? new[] { new StubStorageFolder(FolderName2), new StubStorageFolder(FolderName3) } : new StubStorageFolder[] { }; - }; + }; IEnumerable mediaFolders = MediaService.GetMediaFolders(null); Assert.That(mediaFolders.Count(), Is.EqualTo(1), "Root path only has 1 sub directory"); @@ -94,7 +94,7 @@ public void UnzipMediaFileArchiveAdministratorTest() { Assert.That(StorageProvider.SavedStreams.Contains(StorageProvider.Combine(FolderName1, FinalDottedWebconfigFileName)), Is.False, "no extension files are never allowed"); Assert.That(StorageProvider.SavedStreams.Contains(StorageProvider.Combine(FolderName1, PaddedWebconfigFileName)), Is.False, "no extension files are never allowed"); Assert.That(StorageProvider.SavedStreams.Contains(StorageProvider.Combine(FolderName1, FinalDottedTextFileName)), Is.False, "no extension files are never allowed"); - + Assert.That(StorageProvider.SavedStreams.Count, Is.EqualTo(3)); } @@ -160,29 +160,30 @@ public void WebConfigIsBlackListed() { } private MemoryStream CreateZipMemoryStream() { + var entries = new List { + TextFileName, WebconfigFileName, DllFileName, ZipFileName, NoExtensionFileName, PaddedWebconfigFileName, + FinalDottedWebconfigFileName, PaddedTextFileName, FinalDottedTextFileName + }; + // Setup memory stream with zip archive for more complex scenarios MemoryStream memoryStream = new MemoryStream(); - using (ZipFile zipOut = new ZipFile()) { - - zipOut.AddEntry(TextFileName, new byte[] { 0x01 }); - zipOut.AddEntry(WebconfigFileName, new byte[] { 0x02 }); - zipOut.AddEntry(DllFileName, new byte[] { 0x03 }); - zipOut.AddEntry(ZipFileName, new byte[] { 0x04 }); - zipOut.AddEntry(NoExtensionFileName, new byte[] { 0x05 }); - zipOut.AddEntry(PaddedWebconfigFileName, new byte[] { 0x06 }); - zipOut.AddEntry(FinalDottedWebconfigFileName, new byte[] { 0x07 }); - zipOut.AddEntry(PaddedTextFileName, new byte[] { 0x08 }); - zipOut.AddEntry(FinalDottedTextFileName, new byte[] { 0x09 }); - - zipOut.Save(memoryStream); + using (var archive = new ZipArchive(memoryStream, ZipArchiveMode.Create, leaveOpen: true)) { + var content = new byte[] { 0x01 }; + foreach (var entry in entries) { + var zipEntry = archive.CreateEntry(entry); + using (var zipStream = zipEntry.Open()) { + zipStream.Write(content, 0, 1); + } + ++content[0]; + } } - + return new MemoryStream(memoryStream.ToArray()); } private class MediaServiceAccessor : MediaService { public MediaServiceAccessor(IStorageProvider storageProvider, IOrchardServices orchardServices) - : base (storageProvider, orchardServices) {} + : base(storageProvider, orchardServices) { } public void UnzipMediaFileArchiveAccessor(string targetFolder, Stream zipStream) { UnzipMediaFileArchive(targetFolder, zipStream); diff --git a/src/Orchard.Tests.Modules/Orchard.Tests.Modules.csproj b/src/Orchard.Tests.Modules/Orchard.Tests.Modules.csproj index 0667d1d7c41..f02dacad9a3 100644 --- a/src/Orchard.Tests.Modules/Orchard.Tests.Modules.csproj +++ b/src/Orchard.Tests.Modules/Orchard.Tests.Modules.csproj @@ -64,9 +64,6 @@ ..\packages\Castle.Core.3.3.1\lib\net45\Castle.Core.dll - - ..\packages\DotNetZip.1.12.0\lib\net20\DotNetZip.dll - ..\packages\FluentNHibernate.2.0.3.0\lib\net40\FluentNHibernate.dll @@ -107,8 +104,8 @@ ..\packages\Moq.4.2.1510.2205\lib\net40\Moq.dll - - ..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll + + ..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll ..\packages\NHibernate.4.1.2.4000\lib\net40\NHibernate.dll @@ -134,6 +131,7 @@ ..\..\lib\sqlce\System.Data.SqlServerCe.dll True + 3.5 diff --git a/src/Orchard.Tests.Modules/packages.config b/src/Orchard.Tests.Modules/packages.config index 7ee686fd9e1..8aa1a29ec50 100644 --- a/src/Orchard.Tests.Modules/packages.config +++ b/src/Orchard.Tests.Modules/packages.config @@ -2,7 +2,6 @@ - @@ -12,7 +11,7 @@ - + diff --git a/src/Orchard.Tests/App.config b/src/Orchard.Tests/App.config index a5baeb2d404..4a4387430fe 100644 --- a/src/Orchard.Tests/App.config +++ b/src/Orchard.Tests/App.config @@ -24,7 +24,7 @@ - + diff --git a/src/Orchard.Tests/Orchard.Framework.Tests.csproj b/src/Orchard.Tests/Orchard.Framework.Tests.csproj index a4cb85c8a29..dbf74d029a6 100644 --- a/src/Orchard.Tests/Orchard.Framework.Tests.csproj +++ b/src/Orchard.Tests/Orchard.Framework.Tests.csproj @@ -104,8 +104,8 @@ ..\packages\Moq.4.2.1510.2205\lib\net40\Moq.dll - - ..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll + + ..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll ..\packages\NHibernate.4.1.2.4000\lib\net40\NHibernate.dll diff --git a/src/Orchard.Tests/packages.config b/src/Orchard.Tests/packages.config index 56276c6084b..f6113f41eee 100644 --- a/src/Orchard.Tests/packages.config +++ b/src/Orchard.Tests/packages.config @@ -14,7 +14,7 @@ - + diff --git a/src/Orchard.Web.Tests/app.config b/src/Orchard.Web.Tests/app.config index 35fa94aea3c..37b4df731f3 100644 --- a/src/Orchard.Web.Tests/app.config +++ b/src/Orchard.Web.Tests/app.config @@ -16,7 +16,7 @@ - + diff --git a/src/Orchard.Web/Core/Web.config b/src/Orchard.Web/Core/Web.config index b4eb81357d6..29f42ce2ef4 100644 --- a/src/Orchard.Web/Core/Web.config +++ b/src/Orchard.Web/Core/Web.config @@ -54,7 +54,7 @@ - + diff --git a/src/Orchard.Web/Modules/Lucene/Web.config b/src/Orchard.Web/Modules/Lucene/Web.config index 5d7a337e548..d7b3d625610 100644 --- a/src/Orchard.Web/Modules/Lucene/Web.config +++ b/src/Orchard.Web/Modules/Lucene/Web.config @@ -53,7 +53,7 @@ - + diff --git a/src/Orchard.Web/Modules/Markdown/Web.config b/src/Orchard.Web/Modules/Markdown/Web.config index 836843e000d..dbacb1007b4 100644 --- a/src/Orchard.Web/Modules/Markdown/Web.config +++ b/src/Orchard.Web/Modules/Markdown/Web.config @@ -54,7 +54,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Alias/Web.config b/src/Orchard.Web/Modules/Orchard.Alias/Web.config index 836843e000d..dbacb1007b4 100644 --- a/src/Orchard.Web/Modules/Orchard.Alias/Web.config +++ b/src/Orchard.Web/Modules/Orchard.Alias/Web.config @@ -54,7 +54,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.AntiSpam/Orchard.AntiSpam.csproj b/src/Orchard.Web/Modules/Orchard.AntiSpam/Orchard.AntiSpam.csproj index 19ce10a6077..56a43eda4be 100644 --- a/src/Orchard.Web/Modules/Orchard.AntiSpam/Orchard.AntiSpam.csproj +++ b/src/Orchard.Web/Modules/Orchard.AntiSpam/Orchard.AntiSpam.csproj @@ -59,8 +59,8 @@ ..\..\..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll - - ..\..\..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll + + ..\..\..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll @@ -250,4 +250,4 @@ - + \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.AntiSpam/Web.config b/src/Orchard.Web/Modules/Orchard.AntiSpam/Web.config index 836843e000d..dbacb1007b4 100644 --- a/src/Orchard.Web/Modules/Orchard.AntiSpam/Web.config +++ b/src/Orchard.Web/Modules/Orchard.AntiSpam/Web.config @@ -54,7 +54,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.AntiSpam/packages.config b/src/Orchard.Web/Modules/Orchard.AntiSpam/packages.config index 3a05f90aca5..4edd5314101 100644 --- a/src/Orchard.Web/Modules/Orchard.AntiSpam/packages.config +++ b/src/Orchard.Web/Modules/Orchard.AntiSpam/packages.config @@ -5,5 +5,5 @@ - - + + \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.ArchiveLater/Web.config b/src/Orchard.Web/Modules/Orchard.ArchiveLater/Web.config index 836843e000d..dbacb1007b4 100644 --- a/src/Orchard.Web/Modules/Orchard.ArchiveLater/Web.config +++ b/src/Orchard.Web/Modules/Orchard.ArchiveLater/Web.config @@ -54,7 +54,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/Orchard.AuditTrail.csproj b/src/Orchard.Web/Modules/Orchard.AuditTrail/Orchard.AuditTrail.csproj index 21115cd7340..e0098aa0ef1 100644 --- a/src/Orchard.Web/Modules/Orchard.AuditTrail/Orchard.AuditTrail.csproj +++ b/src/Orchard.Web/Modules/Orchard.AuditTrail/Orchard.AuditTrail.csproj @@ -61,8 +61,8 @@ ..\..\..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll - - ..\..\..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll + + ..\..\..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll ..\..\..\packages\NHibernate.4.1.2.4000\lib\net40\NHibernate.dll diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/Web.config b/src/Orchard.Web/Modules/Orchard.AuditTrail/Web.config index bdc46ecc991..30fb3794f09 100644 --- a/src/Orchard.Web/Modules/Orchard.AuditTrail/Web.config +++ b/src/Orchard.Web/Modules/Orchard.AuditTrail/Web.config @@ -56,7 +56,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/packages.config b/src/Orchard.Web/Modules/Orchard.AuditTrail/packages.config index a8752aa1c52..e19361cb1f1 100644 --- a/src/Orchard.Web/Modules/Orchard.AuditTrail/packages.config +++ b/src/Orchard.Web/Modules/Orchard.AuditTrail/packages.config @@ -6,7 +6,7 @@ - + - + \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Autoroute/Web.config b/src/Orchard.Web/Modules/Orchard.Autoroute/Web.config index 7c4a9d85874..dd91d87a64a 100644 --- a/src/Orchard.Web/Modules/Orchard.Autoroute/Web.config +++ b/src/Orchard.Web/Modules/Orchard.Autoroute/Web.config @@ -53,7 +53,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Azure.MediaServices/Orchard.Azure.MediaServices.csproj b/src/Orchard.Web/Modules/Orchard.Azure.MediaServices/Orchard.Azure.MediaServices.csproj index 7099a743edb..822f95b4fad 100644 --- a/src/Orchard.Web/Modules/Orchard.Azure.MediaServices/Orchard.Azure.MediaServices.csproj +++ b/src/Orchard.Web/Modules/Orchard.Azure.MediaServices/Orchard.Azure.MediaServices.csproj @@ -76,14 +76,14 @@ ..\..\..\packages\Microsoft.Data.Services.Client.5.8.4\lib\net40\Microsoft.Data.Services.Client.dll - - ..\..\..\packages\Microsoft.IdentityModel.JsonWebTokens.5.2.4\lib\net451\Microsoft.IdentityModel.JsonWebTokens.dll + + ..\..\..\packages\Microsoft.IdentityModel.JsonWebTokens.5.7.0\lib\net461\Microsoft.IdentityModel.JsonWebTokens.dll - - ..\..\..\packages\Microsoft.IdentityModel.Logging.5.2.4\lib\net451\Microsoft.IdentityModel.Logging.dll + + ..\..\..\packages\Microsoft.IdentityModel.Logging.5.7.0\lib\net461\Microsoft.IdentityModel.Logging.dll - - ..\..\..\packages\Microsoft.IdentityModel.Tokens.5.2.4\lib\net451\Microsoft.IdentityModel.Tokens.dll + + ..\..\..\packages\Microsoft.IdentityModel.Tokens.5.7.0\lib\net461\Microsoft.IdentityModel.Tokens.dll ..\..\..\packages\TransientFaultHandling.Core.5.1.1209.1\lib\NET4\Microsoft.Practices.TransientFaultHandling.Core.dll @@ -109,8 +109,8 @@ ..\..\..\packages\WindowsAzure.Storage.5.0.2\lib\net40\Microsoft.WindowsAzure.Storage.dll - - ..\..\..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll + + ..\..\..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll ..\..\..\packages\NHibernate.4.1.2.4000\lib\net40\NHibernate.dll @@ -121,8 +121,8 @@ 3.5 - - ..\..\..\packages\System.IdentityModel.Tokens.Jwt.5.2.4\lib\net451\System.IdentityModel.Tokens.Jwt.dll + + ..\..\..\packages\System.IdentityModel.Tokens.Jwt.5.7.0\lib\net461\System.IdentityModel.Tokens.Jwt.dll diff --git a/src/Orchard.Web/Modules/Orchard.Azure.MediaServices/Web.config b/src/Orchard.Web/Modules/Orchard.Azure.MediaServices/Web.config index 999404c7c68..c459044f1f6 100644 --- a/src/Orchard.Web/Modules/Orchard.Azure.MediaServices/Web.config +++ b/src/Orchard.Web/Modules/Orchard.Azure.MediaServices/Web.config @@ -51,7 +51,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Azure.MediaServices/packages.config b/src/Orchard.Web/Modules/Orchard.Azure.MediaServices/packages.config index 0b1ef3ebaf0..09787dc07b5 100644 --- a/src/Orchard.Web/Modules/Orchard.Azure.MediaServices/packages.config +++ b/src/Orchard.Web/Modules/Orchard.Azure.MediaServices/packages.config @@ -11,15 +11,15 @@ - - - + + + - + - + diff --git a/src/Orchard.Web/Modules/Orchard.Azure/Orchard.Azure.csproj b/src/Orchard.Web/Modules/Orchard.Azure/Orchard.Azure.csproj index d0b71207f45..ed3b9bcf010 100644 --- a/src/Orchard.Web/Modules/Orchard.Azure/Orchard.Azure.csproj +++ b/src/Orchard.Web/Modules/Orchard.Azure/Orchard.Azure.csproj @@ -100,8 +100,8 @@ ..\..\..\packages\Microsoft.WindowsAzure.Caching.2.4.0.0\lib\net40-full\Microsoft.WindowsFabric.Data.Common.dll - - ..\..\..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll + + ..\..\..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll ..\..\..\packages\NHibernate.4.1.2.4000\lib\net40\NHibernate.dll @@ -218,4 +218,4 @@ - + \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Azure/Web.config b/src/Orchard.Web/Modules/Orchard.Azure/Web.config index 6a4fb0f7e3f..de8a44fc67e 100644 --- a/src/Orchard.Web/Modules/Orchard.Azure/Web.config +++ b/src/Orchard.Web/Modules/Orchard.Azure/Web.config @@ -63,7 +63,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Azure/packages.config b/src/Orchard.Web/Modules/Orchard.Azure/packages.config index 1caf1674948..3ca59d4ee40 100644 --- a/src/Orchard.Web/Modules/Orchard.Azure/packages.config +++ b/src/Orchard.Web/Modules/Orchard.Azure/packages.config @@ -12,9 +12,9 @@ - + - + \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Blogs/Web.config b/src/Orchard.Web/Modules/Orchard.Blogs/Web.config index 836843e000d..dbacb1007b4 100644 --- a/src/Orchard.Web/Modules/Orchard.Blogs/Web.config +++ b/src/Orchard.Web/Modules/Orchard.Blogs/Web.config @@ -54,7 +54,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Caching/Web.config b/src/Orchard.Web/Modules/Orchard.Caching/Web.config index 9b5d042d111..d3d43517fef 100644 --- a/src/Orchard.Web/Modules/Orchard.Caching/Web.config +++ b/src/Orchard.Web/Modules/Orchard.Caching/Web.config @@ -49,7 +49,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.CodeGeneration/CodeGenerationTemplates/ModuleRootWebConfig.txt b/src/Orchard.Web/Modules/Orchard.CodeGeneration/CodeGenerationTemplates/ModuleRootWebConfig.txt index 50753e181ff..a00ea74ab43 100644 --- a/src/Orchard.Web/Modules/Orchard.CodeGeneration/CodeGenerationTemplates/ModuleRootWebConfig.txt +++ b/src/Orchard.Web/Modules/Orchard.CodeGeneration/CodeGenerationTemplates/ModuleRootWebConfig.txt @@ -47,7 +47,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.CodeGeneration/Web.config b/src/Orchard.Web/Modules/Orchard.CodeGeneration/Web.config index 9b5d042d111..d3d43517fef 100644 --- a/src/Orchard.Web/Modules/Orchard.CodeGeneration/Web.config +++ b/src/Orchard.Web/Modules/Orchard.CodeGeneration/Web.config @@ -49,7 +49,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Comments/Web.config b/src/Orchard.Web/Modules/Orchard.Comments/Web.config index fbf55500e46..2e75b2e7c5b 100644 --- a/src/Orchard.Web/Modules/Orchard.Comments/Web.config +++ b/src/Orchard.Web/Modules/Orchard.Comments/Web.config @@ -54,7 +54,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Conditions/Web.config b/src/Orchard.Web/Modules/Orchard.Conditions/Web.config index 326a3961430..b4905872581 100644 --- a/src/Orchard.Web/Modules/Orchard.Conditions/Web.config +++ b/src/Orchard.Web/Modules/Orchard.Conditions/Web.config @@ -52,7 +52,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.ContentPermissions/Web.config b/src/Orchard.Web/Modules/Orchard.ContentPermissions/Web.config index 836843e000d..dbacb1007b4 100644 --- a/src/Orchard.Web/Modules/Orchard.ContentPermissions/Web.config +++ b/src/Orchard.Web/Modules/Orchard.ContentPermissions/Web.config @@ -54,7 +54,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.ContentPicker/Web.config b/src/Orchard.Web/Modules/Orchard.ContentPicker/Web.config index 836843e000d..dbacb1007b4 100644 --- a/src/Orchard.Web/Modules/Orchard.ContentPicker/Web.config +++ b/src/Orchard.Web/Modules/Orchard.ContentPicker/Web.config @@ -54,7 +54,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.ContentTypes/Web.config b/src/Orchard.Web/Modules/Orchard.ContentTypes/Web.config index 836843e000d..dbacb1007b4 100644 --- a/src/Orchard.Web/Modules/Orchard.ContentTypes/Web.config +++ b/src/Orchard.Web/Modules/Orchard.ContentTypes/Web.config @@ -54,7 +54,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.CustomForms/Web.config b/src/Orchard.Web/Modules/Orchard.CustomForms/Web.config index 836843e000d..dbacb1007b4 100644 --- a/src/Orchard.Web/Modules/Orchard.CustomForms/Web.config +++ b/src/Orchard.Web/Modules/Orchard.CustomForms/Web.config @@ -54,7 +54,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Dashboards/Web.config b/src/Orchard.Web/Modules/Orchard.Dashboards/Web.config index 3b5d123411c..a043fe51285 100644 --- a/src/Orchard.Web/Modules/Orchard.Dashboards/Web.config +++ b/src/Orchard.Web/Modules/Orchard.Dashboards/Web.config @@ -55,7 +55,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.DesignerTools/Web.config b/src/Orchard.Web/Modules/Orchard.DesignerTools/Web.config index 3ab218f54f5..6467d9f0d9f 100644 --- a/src/Orchard.Web/Modules/Orchard.DesignerTools/Web.config +++ b/src/Orchard.Web/Modules/Orchard.DesignerTools/Web.config @@ -55,7 +55,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.DynamicForms/Orchard.DynamicForms.csproj b/src/Orchard.Web/Modules/Orchard.DynamicForms/Orchard.DynamicForms.csproj index 1b17c9c0718..df2c9dd01b5 100644 --- a/src/Orchard.Web/Modules/Orchard.DynamicForms/Orchard.DynamicForms.csproj +++ b/src/Orchard.Web/Modules/Orchard.DynamicForms/Orchard.DynamicForms.csproj @@ -65,8 +65,8 @@ ..\..\..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll - - ..\..\..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll + + ..\..\..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll diff --git a/src/Orchard.Web/Modules/Orchard.DynamicForms/Web.config b/src/Orchard.Web/Modules/Orchard.DynamicForms/Web.config index 83edfe66610..f791108bae0 100644 --- a/src/Orchard.Web/Modules/Orchard.DynamicForms/Web.config +++ b/src/Orchard.Web/Modules/Orchard.DynamicForms/Web.config @@ -57,7 +57,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.DynamicForms/packages.config b/src/Orchard.Web/Modules/Orchard.DynamicForms/packages.config index 44b10a9b45c..4fae832de18 100644 --- a/src/Orchard.Web/Modules/Orchard.DynamicForms/packages.config +++ b/src/Orchard.Web/Modules/Orchard.DynamicForms/packages.config @@ -7,5 +7,5 @@ - + \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Email/Orchard.Email.csproj b/src/Orchard.Web/Modules/Orchard.Email/Orchard.Email.csproj index d5dcfd97db3..ed6a53a920d 100644 --- a/src/Orchard.Web/Modules/Orchard.Email/Orchard.Email.csproj +++ b/src/Orchard.Web/Modules/Orchard.Email/Orchard.Email.csproj @@ -68,8 +68,8 @@ ..\..\..\packages\MimeKit.3.1.1\lib\net48\MimeKit.dll - - ..\..\..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll + + ..\..\..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll diff --git a/src/Orchard.Web/Modules/Orchard.Email/Web.config b/src/Orchard.Web/Modules/Orchard.Email/Web.config index 1149fd7ed77..975f0c223c9 100644 --- a/src/Orchard.Web/Modules/Orchard.Email/Web.config +++ b/src/Orchard.Web/Modules/Orchard.Email/Web.config @@ -55,7 +55,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Email/packages.config b/src/Orchard.Web/Modules/Orchard.Email/packages.config index f172c28e159..58191e63896 100644 --- a/src/Orchard.Web/Modules/Orchard.Email/packages.config +++ b/src/Orchard.Web/Modules/Orchard.Email/packages.config @@ -7,7 +7,7 @@ - + \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Fields/Web.config b/src/Orchard.Web/Modules/Orchard.Fields/Web.config index 8fae9643fd1..a5c193197b9 100644 --- a/src/Orchard.Web/Modules/Orchard.Fields/Web.config +++ b/src/Orchard.Web/Modules/Orchard.Fields/Web.config @@ -54,7 +54,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Forms/Orchard.Forms.csproj b/src/Orchard.Web/Modules/Orchard.Forms/Orchard.Forms.csproj index 621b2818ad4..17d3fa58bd6 100644 --- a/src/Orchard.Web/Modules/Orchard.Forms/Orchard.Forms.csproj +++ b/src/Orchard.Web/Modules/Orchard.Forms/Orchard.Forms.csproj @@ -54,8 +54,8 @@ ..\..\..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll - - ..\..\..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll + + ..\..\..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll @@ -172,4 +172,4 @@ - + \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Forms/Web.config b/src/Orchard.Web/Modules/Orchard.Forms/Web.config index 68cba4a35ea..df4c6983f9b 100644 --- a/src/Orchard.Web/Modules/Orchard.Forms/Web.config +++ b/src/Orchard.Web/Modules/Orchard.Forms/Web.config @@ -51,7 +51,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Forms/packages.config b/src/Orchard.Web/Modules/Orchard.Forms/packages.config index 96de43e4a06..423014ad0cc 100644 --- a/src/Orchard.Web/Modules/Orchard.Forms/packages.config +++ b/src/Orchard.Web/Modules/Orchard.Forms/packages.config @@ -4,5 +4,5 @@ - - + + \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.ImageEditor/Web.config b/src/Orchard.Web/Modules/Orchard.ImageEditor/Web.config index 510d562fe0d..434d94d1acb 100644 --- a/src/Orchard.Web/Modules/Orchard.ImageEditor/Web.config +++ b/src/Orchard.Web/Modules/Orchard.ImageEditor/Web.config @@ -55,7 +55,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.ImportExport/Web.config b/src/Orchard.Web/Modules/Orchard.ImportExport/Web.config index 836843e000d..dbacb1007b4 100644 --- a/src/Orchard.Web/Modules/Orchard.ImportExport/Web.config +++ b/src/Orchard.Web/Modules/Orchard.ImportExport/Web.config @@ -54,7 +54,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Indexing/Web.config b/src/Orchard.Web/Modules/Orchard.Indexing/Web.config index 836843e000d..dbacb1007b4 100644 --- a/src/Orchard.Web/Modules/Orchard.Indexing/Web.config +++ b/src/Orchard.Web/Modules/Orchard.Indexing/Web.config @@ -54,7 +54,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.JobsQueue/Orchard.JobsQueue.csproj b/src/Orchard.Web/Modules/Orchard.JobsQueue/Orchard.JobsQueue.csproj index 323423ca790..7d665223d95 100644 --- a/src/Orchard.Web/Modules/Orchard.JobsQueue/Orchard.JobsQueue.csproj +++ b/src/Orchard.Web/Modules/Orchard.JobsQueue/Orchard.JobsQueue.csproj @@ -60,8 +60,8 @@ ..\..\..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll - - ..\..\..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll + + ..\..\..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll @@ -196,4 +196,4 @@ - + \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.JobsQueue/Web.config b/src/Orchard.Web/Modules/Orchard.JobsQueue/Web.config index 1149fd7ed77..975f0c223c9 100644 --- a/src/Orchard.Web/Modules/Orchard.JobsQueue/Web.config +++ b/src/Orchard.Web/Modules/Orchard.JobsQueue/Web.config @@ -55,7 +55,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.JobsQueue/packages.config b/src/Orchard.Web/Modules/Orchard.JobsQueue/packages.config index 3a05f90aca5..4edd5314101 100644 --- a/src/Orchard.Web/Modules/Orchard.JobsQueue/packages.config +++ b/src/Orchard.Web/Modules/Orchard.JobsQueue/packages.config @@ -5,5 +5,5 @@ - - + + \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Orchard.Layouts.csproj b/src/Orchard.Web/Modules/Orchard.Layouts/Orchard.Layouts.csproj index 1c544f1c025..aeaf2d93888 100644 --- a/src/Orchard.Web/Modules/Orchard.Layouts/Orchard.Layouts.csproj +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Orchard.Layouts.csproj @@ -58,8 +58,8 @@ ..\..\..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll - - ..\..\..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll + + ..\..\..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Web.config b/src/Orchard.Web/Modules/Orchard.Layouts/Web.config index 0908d535fba..13faf444e73 100644 --- a/src/Orchard.Web/Modules/Orchard.Layouts/Web.config +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Web.config @@ -43,7 +43,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/packages.config b/src/Orchard.Web/Modules/Orchard.Layouts/packages.config index d391928d131..9504b7d9d9e 100644 --- a/src/Orchard.Web/Modules/Orchard.Layouts/packages.config +++ b/src/Orchard.Web/Modules/Orchard.Layouts/packages.config @@ -7,6 +7,6 @@ - + \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Lists/Web.config b/src/Orchard.Web/Modules/Orchard.Lists/Web.config index 836843e000d..dbacb1007b4 100644 --- a/src/Orchard.Web/Modules/Orchard.Lists/Web.config +++ b/src/Orchard.Web/Modules/Orchard.Lists/Web.config @@ -54,7 +54,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Localization/Web.config b/src/Orchard.Web/Modules/Orchard.Localization/Web.config index 836843e000d..dbacb1007b4 100644 --- a/src/Orchard.Web/Modules/Orchard.Localization/Web.config +++ b/src/Orchard.Web/Modules/Orchard.Localization/Web.config @@ -54,7 +54,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Media/Orchard.Media.csproj b/src/Orchard.Web/Modules/Orchard.Media/Orchard.Media.csproj index b01ce63de3f..c4a391378c2 100644 --- a/src/Orchard.Web/Modules/Orchard.Media/Orchard.Media.csproj +++ b/src/Orchard.Web/Modules/Orchard.Media/Orchard.Media.csproj @@ -52,9 +52,6 @@ false - - ..\..\..\packages\DotNetZip.1.12.0\lib\net20\DotNetZip.dll - ..\..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.4.1.0\lib\net472\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll @@ -64,6 +61,7 @@ + @@ -204,4 +202,4 @@ - + \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Media/Services/MediaService.cs b/src/Orchard.Web/Modules/Orchard.Media/Services/MediaService.cs index f11190b7ce9..3084bd871be 100644 --- a/src/Orchard.Web/Modules/Orchard.Media/Services/MediaService.cs +++ b/src/Orchard.Web/Modules/Orchard.Media/Services/MediaService.cs @@ -1,9 +1,9 @@ using System; using System.Collections.Generic; using System.IO; +using System.IO.Compression; using System.Linq; using System.Web; -using Ionic.Zip; using Orchard.ContentManagement; using Orchard.FileSystems.Media; using Orchard.Localization; @@ -194,7 +194,7 @@ public string UploadMediaFile(string folderPath, HttpPostedFileBase postedFile, /// The array of bytes with the file's contents. /// Boolean value indicating weather zip files should be extracted. /// The path to the uploaded file. - public string UploadMediaFile(string folderPath, string fileName, byte [] bytes, bool extractZip) { + public string UploadMediaFile(string folderPath, string fileName, byte[] bytes, bool extractZip) { Argument.ThrowIfNullOrEmpty(folderPath, "folderPath"); Argument.ThrowIfNullOrEmpty(fileName, "fileName"); Argument.ThrowIfNull(bytes, "bytes"); @@ -274,16 +274,16 @@ public bool FileAllowed(string fileName, bool allowZip) { // must be in the whitelist MediaSettingsPart mediaSettings = currentSite.As(); - + if (mediaSettings == null) { return false; - } - - if(String.IsNullOrWhiteSpace(mediaSettings.UploadAllowedFileTypeWhitelist)) { + } + + if (String.IsNullOrWhiteSpace(mediaSettings.UploadAllowedFileTypeWhitelist)) { return true; - } + } - if(!mediaSettings.UploadAllowedFileTypeWhitelist.ToUpperInvariant().Split(' ').Contains(extension.ToUpperInvariant())) { + if (!mediaSettings.UploadAllowedFileTypeWhitelist.ToUpperInvariant().Split(' ').Contains(extension.ToUpperInvariant())) { return false; } } @@ -305,28 +305,26 @@ protected void UnzipMediaFileArchive(string targetFolder, Stream zipStream) { Argument.ThrowIfNullOrEmpty(targetFolder, "targetFolder"); Argument.ThrowIfNull(zipStream, "zipStream"); - using (var fileInflater = ZipFile.Read(zipStream)) { + using (var fileInflater = new ZipArchive(zipStream)) { // We want to preserve whatever directory structure the zip file contained instead // of flattening it. // The API below doesn't necessarily return the entries in the zip file in any order. // That means the files in subdirectories can be returned as entries from the stream // before the directories that contain them, so we create directories as soon as first // file below their path is encountered. - foreach (ZipEntry entry in fileInflater) { + foreach (var entry in fileInflater.Entries) { if (entry == null) { continue; } - if (!entry.IsDirectory && !string.IsNullOrEmpty(entry.FileName)) { - + if (!string.IsNullOrEmpty(entry.Name)) { // skip disallowed files - if (FileAllowed(entry.FileName, false)) { - string fullFileName = _storageProvider.Combine(targetFolder, entry.FileName); + if (FileAllowed(entry.Name, false)) { + string fullFileName = _storageProvider.Combine(targetFolder, entry.FullName); - using (var stream = entry.OpenReader()) { + using (var stream = entry.Open()) { // the call will return false if the file already exists if (!_storageProvider.TrySaveStream(fullFileName, stream)) { - // try to delete the file and save again try { _storageProvider.DeleteFile(fullFileName); diff --git a/src/Orchard.Web/Modules/Orchard.Media/Web.config b/src/Orchard.Web/Modules/Orchard.Media/Web.config index 836843e000d..dbacb1007b4 100644 --- a/src/Orchard.Web/Modules/Orchard.Media/Web.config +++ b/src/Orchard.Web/Modules/Orchard.Media/Web.config @@ -54,7 +54,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Media/packages.config b/src/Orchard.Web/Modules/Orchard.Media/packages.config index 5de97f737ea..1c55d6960bb 100644 --- a/src/Orchard.Web/Modules/Orchard.Media/packages.config +++ b/src/Orchard.Web/Modules/Orchard.Media/packages.config @@ -1,6 +1,5 @@  - diff --git a/src/Orchard.Web/Modules/Orchard.MediaLibrary/Orchard.MediaLibrary.csproj b/src/Orchard.Web/Modules/Orchard.MediaLibrary/Orchard.MediaLibrary.csproj index 11f70f3092c..c896c8e716d 100644 --- a/src/Orchard.Web/Modules/Orchard.MediaLibrary/Orchard.MediaLibrary.csproj +++ b/src/Orchard.Web/Modules/Orchard.MediaLibrary/Orchard.MediaLibrary.csproj @@ -58,8 +58,8 @@ ..\..\..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll - - ..\..\..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll + + ..\..\..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll @@ -451,4 +451,4 @@ - + \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.MediaLibrary/Web.config b/src/Orchard.Web/Modules/Orchard.MediaLibrary/Web.config index 3ab218f54f5..6467d9f0d9f 100644 --- a/src/Orchard.Web/Modules/Orchard.MediaLibrary/Web.config +++ b/src/Orchard.Web/Modules/Orchard.MediaLibrary/Web.config @@ -55,7 +55,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.MediaLibrary/packages.config b/src/Orchard.Web/Modules/Orchard.MediaLibrary/packages.config index 3a05f90aca5..4edd5314101 100644 --- a/src/Orchard.Web/Modules/Orchard.MediaLibrary/packages.config +++ b/src/Orchard.Web/Modules/Orchard.MediaLibrary/packages.config @@ -5,5 +5,5 @@ - - + + \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.MediaPicker/Web.config b/src/Orchard.Web/Modules/Orchard.MediaPicker/Web.config index 836843e000d..dbacb1007b4 100644 --- a/src/Orchard.Web/Modules/Orchard.MediaPicker/Web.config +++ b/src/Orchard.Web/Modules/Orchard.MediaPicker/Web.config @@ -54,7 +54,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.MediaProcessing/Web.config b/src/Orchard.Web/Modules/Orchard.MediaProcessing/Web.config index 836843e000d..dbacb1007b4 100644 --- a/src/Orchard.Web/Modules/Orchard.MediaProcessing/Web.config +++ b/src/Orchard.Web/Modules/Orchard.MediaProcessing/Web.config @@ -54,7 +54,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.MessageBus/Web.config b/src/Orchard.Web/Modules/Orchard.MessageBus/Web.config index 9b5d042d111..d3d43517fef 100644 --- a/src/Orchard.Web/Modules/Orchard.MessageBus/Web.config +++ b/src/Orchard.Web/Modules/Orchard.MessageBus/Web.config @@ -49,7 +49,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Migrations/Web.config b/src/Orchard.Web/Modules/Orchard.Migrations/Web.config index 9b5d042d111..d3d43517fef 100644 --- a/src/Orchard.Web/Modules/Orchard.Migrations/Web.config +++ b/src/Orchard.Web/Modules/Orchard.Migrations/Web.config @@ -49,7 +49,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Modules/Web.config b/src/Orchard.Web/Modules/Orchard.Modules/Web.config index 5d7a337e548..d7b3d625610 100644 --- a/src/Orchard.Web/Modules/Orchard.Modules/Web.config +++ b/src/Orchard.Web/Modules/Orchard.Modules/Web.config @@ -53,7 +53,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.MultiTenancy/Web.config b/src/Orchard.Web/Modules/Orchard.MultiTenancy/Web.config index 5d7a337e548..d7b3d625610 100644 --- a/src/Orchard.Web/Modules/Orchard.MultiTenancy/Web.config +++ b/src/Orchard.Web/Modules/Orchard.MultiTenancy/Web.config @@ -53,7 +53,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.OutputCache/Web.config b/src/Orchard.Web/Modules/Orchard.OutputCache/Web.config index 64b9971e840..d85ea246e3c 100644 --- a/src/Orchard.Web/Modules/Orchard.OutputCache/Web.config +++ b/src/Orchard.Web/Modules/Orchard.OutputCache/Web.config @@ -54,7 +54,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Packaging/Web.config b/src/Orchard.Web/Modules/Orchard.Packaging/Web.config index 5706c1b4bd7..9d27699e21c 100644 --- a/src/Orchard.Web/Modules/Orchard.Packaging/Web.config +++ b/src/Orchard.Web/Modules/Orchard.Packaging/Web.config @@ -54,7 +54,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Pages/Web.config b/src/Orchard.Web/Modules/Orchard.Pages/Web.config index 55653b53f80..6295ffe086c 100644 --- a/src/Orchard.Web/Modules/Orchard.Pages/Web.config +++ b/src/Orchard.Web/Modules/Orchard.Pages/Web.config @@ -51,7 +51,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Projections/Tests/app.config b/src/Orchard.Web/Modules/Orchard.Projections/Tests/app.config index 9493cfeeadf..6ada2cd0163 100644 --- a/src/Orchard.Web/Modules/Orchard.Projections/Tests/app.config +++ b/src/Orchard.Web/Modules/Orchard.Projections/Tests/app.config @@ -16,7 +16,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Projections/Web.config b/src/Orchard.Web/Modules/Orchard.Projections/Web.config index 836843e000d..dbacb1007b4 100644 --- a/src/Orchard.Web/Modules/Orchard.Projections/Web.config +++ b/src/Orchard.Web/Modules/Orchard.Projections/Web.config @@ -54,7 +54,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.PublishLater/Web.config b/src/Orchard.Web/Modules/Orchard.PublishLater/Web.config index 836843e000d..dbacb1007b4 100644 --- a/src/Orchard.Web/Modules/Orchard.PublishLater/Web.config +++ b/src/Orchard.Web/Modules/Orchard.PublishLater/Web.config @@ -54,7 +54,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Recipes/Web.config b/src/Orchard.Web/Modules/Orchard.Recipes/Web.config index f57e23503ee..18574b08b95 100644 --- a/src/Orchard.Web/Modules/Orchard.Recipes/Web.config +++ b/src/Orchard.Web/Modules/Orchard.Recipes/Web.config @@ -52,7 +52,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Redis/Orchard.Redis.csproj b/src/Orchard.Web/Modules/Orchard.Redis/Orchard.Redis.csproj index 39eaa9dc45b..766beb45724 100644 --- a/src/Orchard.Web/Modules/Orchard.Redis/Orchard.Redis.csproj +++ b/src/Orchard.Web/Modules/Orchard.Redis/Orchard.Redis.csproj @@ -53,8 +53,8 @@ ..\..\..\packages\Iesi.Collections.4.0.1.4000\lib\net40\Iesi.Collections.dll - - ..\..\..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll + + ..\..\..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll ..\..\..\packages\NHibernate.4.1.2.4000\lib\net40\NHibernate.dll @@ -161,4 +161,4 @@ - + \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Redis/Web.config b/src/Orchard.Web/Modules/Orchard.Redis/Web.config index 050c8f12544..b2bd44ec170 100644 --- a/src/Orchard.Web/Modules/Orchard.Redis/Web.config +++ b/src/Orchard.Web/Modules/Orchard.Redis/Web.config @@ -49,7 +49,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Redis/packages.config b/src/Orchard.Web/Modules/Orchard.Redis/packages.config index 9e7bf972f90..e967b80b02f 100644 --- a/src/Orchard.Web/Modules/Orchard.Redis/packages.config +++ b/src/Orchard.Web/Modules/Orchard.Redis/packages.config @@ -1,7 +1,7 @@  - + - + \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Resources/Web.config b/src/Orchard.Web/Modules/Orchard.Resources/Web.config index ae6d6621d07..41c6d90cdea 100644 --- a/src/Orchard.Web/Modules/Orchard.Resources/Web.config +++ b/src/Orchard.Web/Modules/Orchard.Resources/Web.config @@ -55,7 +55,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Roles/Web.config b/src/Orchard.Web/Modules/Orchard.Roles/Web.config index 1149fd7ed77..975f0c223c9 100644 --- a/src/Orchard.Web/Modules/Orchard.Roles/Web.config +++ b/src/Orchard.Web/Modules/Orchard.Roles/Web.config @@ -55,7 +55,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Rules/Web.config b/src/Orchard.Web/Modules/Orchard.Rules/Web.config index 1e15feddd3e..c84658808bb 100644 --- a/src/Orchard.Web/Modules/Orchard.Rules/Web.config +++ b/src/Orchard.Web/Modules/Orchard.Rules/Web.config @@ -57,7 +57,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Scripting.CSharp/Web.config b/src/Orchard.Web/Modules/Orchard.Scripting.CSharp/Web.config index 836843e000d..dbacb1007b4 100644 --- a/src/Orchard.Web/Modules/Orchard.Scripting.CSharp/Web.config +++ b/src/Orchard.Web/Modules/Orchard.Scripting.CSharp/Web.config @@ -54,7 +54,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Scripting.Dlr/Web.config b/src/Orchard.Web/Modules/Orchard.Scripting.Dlr/Web.config index 050c8f12544..b2bd44ec170 100644 --- a/src/Orchard.Web/Modules/Orchard.Scripting.Dlr/Web.config +++ b/src/Orchard.Web/Modules/Orchard.Scripting.Dlr/Web.config @@ -49,7 +49,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Scripting/Web.config b/src/Orchard.Web/Modules/Orchard.Scripting/Web.config index 050c8f12544..b2bd44ec170 100644 --- a/src/Orchard.Web/Modules/Orchard.Scripting/Web.config +++ b/src/Orchard.Web/Modules/Orchard.Scripting/Web.config @@ -49,7 +49,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Search/Web.config b/src/Orchard.Web/Modules/Orchard.Search/Web.config index 836843e000d..dbacb1007b4 100644 --- a/src/Orchard.Web/Modules/Orchard.Search/Web.config +++ b/src/Orchard.Web/Modules/Orchard.Search/Web.config @@ -54,7 +54,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.SecureSocketsLayer/Web.config b/src/Orchard.Web/Modules/Orchard.SecureSocketsLayer/Web.config index 836843e000d..dbacb1007b4 100644 --- a/src/Orchard.Web/Modules/Orchard.SecureSocketsLayer/Web.config +++ b/src/Orchard.Web/Modules/Orchard.SecureSocketsLayer/Web.config @@ -54,7 +54,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Setup/Web.config b/src/Orchard.Web/Modules/Orchard.Setup/Web.config index 836843e000d..dbacb1007b4 100644 --- a/src/Orchard.Web/Modules/Orchard.Setup/Web.config +++ b/src/Orchard.Web/Modules/Orchard.Setup/Web.config @@ -54,7 +54,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Tags/Web.config b/src/Orchard.Web/Modules/Orchard.Tags/Web.config index 836843e000d..dbacb1007b4 100644 --- a/src/Orchard.Web/Modules/Orchard.Tags/Web.config +++ b/src/Orchard.Web/Modules/Orchard.Tags/Web.config @@ -54,7 +54,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.TaskLease/Web.config b/src/Orchard.Web/Modules/Orchard.TaskLease/Web.config index 050c8f12544..b2bd44ec170 100644 --- a/src/Orchard.Web/Modules/Orchard.TaskLease/Web.config +++ b/src/Orchard.Web/Modules/Orchard.TaskLease/Web.config @@ -49,7 +49,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Taxonomies/Orchard.Taxonomies.csproj b/src/Orchard.Web/Modules/Orchard.Taxonomies/Orchard.Taxonomies.csproj index a2d6449b304..eeceab2c392 100644 --- a/src/Orchard.Web/Modules/Orchard.Taxonomies/Orchard.Taxonomies.csproj +++ b/src/Orchard.Web/Modules/Orchard.Taxonomies/Orchard.Taxonomies.csproj @@ -59,8 +59,8 @@ ..\..\..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll - - ..\..\..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll + + ..\..\..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll @@ -288,4 +288,4 @@ - + \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Taxonomies/Web.config b/src/Orchard.Web/Modules/Orchard.Taxonomies/Web.config index b12ba08aac1..1986782879b 100644 --- a/src/Orchard.Web/Modules/Orchard.Taxonomies/Web.config +++ b/src/Orchard.Web/Modules/Orchard.Taxonomies/Web.config @@ -41,7 +41,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Taxonomies/packages.config b/src/Orchard.Web/Modules/Orchard.Taxonomies/packages.config index 343350b1399..a8ccef4a9e8 100644 --- a/src/Orchard.Web/Modules/Orchard.Taxonomies/packages.config +++ b/src/Orchard.Web/Modules/Orchard.Taxonomies/packages.config @@ -7,5 +7,5 @@ - - + + \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Templates/Web.config b/src/Orchard.Web/Modules/Orchard.Templates/Web.config index 836843e000d..dbacb1007b4 100644 --- a/src/Orchard.Web/Modules/Orchard.Templates/Web.config +++ b/src/Orchard.Web/Modules/Orchard.Templates/Web.config @@ -54,7 +54,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Themes/Web.config b/src/Orchard.Web/Modules/Orchard.Themes/Web.config index 836843e000d..dbacb1007b4 100644 --- a/src/Orchard.Web/Modules/Orchard.Themes/Web.config +++ b/src/Orchard.Web/Modules/Orchard.Themes/Web.config @@ -54,7 +54,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Tokens/Tests/app.config b/src/Orchard.Web/Modules/Orchard.Tokens/Tests/app.config index cda2fe9df30..ed0f1f563ee 100644 --- a/src/Orchard.Web/Modules/Orchard.Tokens/Tests/app.config +++ b/src/Orchard.Web/Modules/Orchard.Tokens/Tests/app.config @@ -16,7 +16,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Tokens/Web.config b/src/Orchard.Web/Modules/Orchard.Tokens/Web.config index 836843e000d..dbacb1007b4 100644 --- a/src/Orchard.Web/Modules/Orchard.Tokens/Web.config +++ b/src/Orchard.Web/Modules/Orchard.Tokens/Web.config @@ -54,7 +54,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Users/Web.config b/src/Orchard.Web/Modules/Orchard.Users/Web.config index 1149fd7ed77..975f0c223c9 100644 --- a/src/Orchard.Web/Modules/Orchard.Users/Web.config +++ b/src/Orchard.Web/Modules/Orchard.Users/Web.config @@ -55,7 +55,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Warmup/Web.config b/src/Orchard.Web/Modules/Orchard.Warmup/Web.config index 836843e000d..dbacb1007b4 100644 --- a/src/Orchard.Web/Modules/Orchard.Warmup/Web.config +++ b/src/Orchard.Web/Modules/Orchard.Warmup/Web.config @@ -54,7 +54,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/Web.config b/src/Orchard.Web/Modules/Orchard.Widgets/Web.config index 836843e000d..dbacb1007b4 100644 --- a/src/Orchard.Web/Modules/Orchard.Widgets/Web.config +++ b/src/Orchard.Web/Modules/Orchard.Widgets/Web.config @@ -54,7 +54,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Workflows/Orchard.Workflows.csproj b/src/Orchard.Web/Modules/Orchard.Workflows/Orchard.Workflows.csproj index 97df8d93747..3e85f4f0bfa 100644 --- a/src/Orchard.Web/Modules/Orchard.Workflows/Orchard.Workflows.csproj +++ b/src/Orchard.Web/Modules/Orchard.Workflows/Orchard.Workflows.csproj @@ -58,8 +58,8 @@ ..\..\..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll - - ..\..\..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll + + ..\..\..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll @@ -307,4 +307,4 @@ - + \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Workflows/Web.config b/src/Orchard.Web/Modules/Orchard.Workflows/Web.config index 1149fd7ed77..975f0c223c9 100644 --- a/src/Orchard.Web/Modules/Orchard.Workflows/Web.config +++ b/src/Orchard.Web/Modules/Orchard.Workflows/Web.config @@ -55,7 +55,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Workflows/packages.config b/src/Orchard.Web/Modules/Orchard.Workflows/packages.config index 3a05f90aca5..4edd5314101 100644 --- a/src/Orchard.Web/Modules/Orchard.Workflows/packages.config +++ b/src/Orchard.Web/Modules/Orchard.Workflows/packages.config @@ -5,5 +5,5 @@ - - + + \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.jQuery/Web.config b/src/Orchard.Web/Modules/Orchard.jQuery/Web.config index 836843e000d..dbacb1007b4 100644 --- a/src/Orchard.Web/Modules/Orchard.jQuery/Web.config +++ b/src/Orchard.Web/Modules/Orchard.jQuery/Web.config @@ -54,7 +54,7 @@ - + diff --git a/src/Orchard.Web/Modules/SysCache/Web.config b/src/Orchard.Web/Modules/SysCache/Web.config index 050c8f12544..b2bd44ec170 100644 --- a/src/Orchard.Web/Modules/SysCache/Web.config +++ b/src/Orchard.Web/Modules/SysCache/Web.config @@ -49,7 +49,7 @@ - + diff --git a/src/Orchard.Web/Modules/TinyMce/Web.config b/src/Orchard.Web/Modules/TinyMce/Web.config index 5d7a337e548..d7b3d625610 100644 --- a/src/Orchard.Web/Modules/TinyMce/Web.config +++ b/src/Orchard.Web/Modules/TinyMce/Web.config @@ -53,7 +53,7 @@ - + diff --git a/src/Orchard.Web/Modules/Upgrade/Upgrade.csproj b/src/Orchard.Web/Modules/Upgrade/Upgrade.csproj index 9b4d802076c..002f5877125 100644 --- a/src/Orchard.Web/Modules/Upgrade/Upgrade.csproj +++ b/src/Orchard.Web/Modules/Upgrade/Upgrade.csproj @@ -61,8 +61,8 @@ ..\..\..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll - - ..\..\..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll + + ..\..\..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll ..\..\..\packages\NHibernate.4.1.2.4000\lib\net40\NHibernate.dll diff --git a/src/Orchard.Web/Modules/Upgrade/Web.config b/src/Orchard.Web/Modules/Upgrade/Web.config index 2ea1387f862..27dd9de8066 100644 --- a/src/Orchard.Web/Modules/Upgrade/Web.config +++ b/src/Orchard.Web/Modules/Upgrade/Web.config @@ -44,7 +44,7 @@ - + diff --git a/src/Orchard.Web/Modules/Upgrade/packages.config b/src/Orchard.Web/Modules/Upgrade/packages.config index c464a2ac704..44568f4f973 100644 --- a/src/Orchard.Web/Modules/Upgrade/packages.config +++ b/src/Orchard.Web/Modules/Upgrade/packages.config @@ -8,6 +8,6 @@ - + - + \ No newline at end of file diff --git a/src/Orchard.Web/Orchard.Web.csproj b/src/Orchard.Web/Orchard.Web.csproj index f793ce0b4db..563f9d6babd 100644 --- a/src/Orchard.Web/Orchard.Web.csproj +++ b/src/Orchard.Web/Orchard.Web.csproj @@ -78,8 +78,8 @@ ..\packages\MySql.Data.6.7.9\lib\net45\MySql.Data.dll - - ..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll + + ..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll ..\packages\Npgsql.2.2.3\lib\net45\Npgsql.dll diff --git a/src/Orchard.Web/Themes/Web.config b/src/Orchard.Web/Themes/Web.config index 6f22dac9425..f09510e13f2 100644 --- a/src/Orchard.Web/Themes/Web.config +++ b/src/Orchard.Web/Themes/Web.config @@ -77,7 +77,7 @@ - + diff --git a/src/Orchard.Web/Web.config b/src/Orchard.Web/Web.config index 63a710c6c8e..913c4f04d67 100644 --- a/src/Orchard.Web/Web.config +++ b/src/Orchard.Web/Web.config @@ -159,7 +159,7 @@ - + diff --git a/src/Orchard.Web/packages.config b/src/Orchard.Web/packages.config index d27ff611903..a3cf9084f72 100644 --- a/src/Orchard.Web/packages.config +++ b/src/Orchard.Web/packages.config @@ -10,7 +10,7 @@ - + diff --git a/src/Orchard/Orchard.Framework.csproj b/src/Orchard/Orchard.Framework.csproj index 56e9fbc43bf..c74cd774fc2 100644 --- a/src/Orchard/Orchard.Framework.csproj +++ b/src/Orchard/Orchard.Framework.csproj @@ -83,8 +83,8 @@ ..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll - - ..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll + + ..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll ..\packages\NHibernate.4.1.2.4000\lib\net40\NHibernate.dll diff --git a/src/Orchard/app.config b/src/Orchard/app.config index 88432b48a39..bc4937df3ea 100644 --- a/src/Orchard/app.config +++ b/src/Orchard/app.config @@ -20,7 +20,7 @@ - + diff --git a/src/Orchard/packages.config b/src/Orchard/packages.config index ae21c35d4cc..73bb52b8372 100644 --- a/src/Orchard/packages.config +++ b/src/Orchard/packages.config @@ -14,7 +14,7 @@ - + \ No newline at end of file From 0d93cb1d8d819e46bc5cfc7d55d1797086d965d2 Mon Sep 17 00:00:00 2001 From: Benedek Farkas Date: Fri, 6 Dec 2024 09:59:15 +0100 Subject: [PATCH 2/3] #8816: Compilation workflow should test the setup and code generation (#8817) * Updating Compile workflow with setup and code generation steps * Updating NHibernate reference and OrchardBasicCorrectness.ruleset path in ModuleTestsCsProj code generation template * Ignoring CS2008 warning when recompiling with generated modules, because the theme and test projects don't have .cs files * Generating a test project should also include packages.config * Fixing the relative path of Orchard.Core and Orchard.Framework in the generated test project * A bit of code styling in the Compile workflow * Updating Readme * Revert "A bit of code styling in the Compile workflow" This reverts commit 7b01ebbad0422d402362b1d08a74b1240a19daa4. --- .github/workflows/compile.yml | 24 ++++++++++++++++- README.md | 26 +++++++------------ .../ModuleTestsCsProj.txt | 10 +++---- .../ModuleTestsPackagesConfig.txt | 7 +++++ .../Commands/CodeGenerationCommands.cs | 16 +++++++----- .../Orchard.CodeGeneration.csproj | 3 ++- 6 files changed, 57 insertions(+), 29 deletions(-) create mode 100644 src/Orchard.Web/Modules/Orchard.CodeGeneration/CodeGenerationTemplates/ModuleTestsPackagesConfig.txt diff --git a/.github/workflows/compile.yml b/.github/workflows/compile.yml index 602548d7842..eb46871bea7 100644 --- a/.github/workflows/compile.yml +++ b/.github/workflows/compile.yml @@ -26,11 +26,33 @@ jobs: uses: microsoft/setup-msbuild@v2 - name: Compile - run: msbuild Orchard.proj /m /v:minimal /t:Compile /p:MvcBuildViews=true /p:TreatWarningsAsErrors=true -WarnAsError + run: msbuild Orchard.proj /m /v:minimal /t:Compile /p:TreatWarningsAsErrors=true -WarnAsError /p:MvcBuildViews=true - name: Test run: msbuild Orchard.proj /m /v:minimal /t:Test + - name: Run Orchard setup + run: | + $commandFile = 'src/Orchard.Web/bin/setup-commands.txt' + New-Item -Path $commandFile -ItemType File -Force + Set-Content -Path $commandFile -Value 'setup /SiteName:Orchard /AdminUsername:admin /AdminPassword:Password1! /DatabaseProvider:SqlCe /Recipe:Default' + & 'src/Orchard.Web/bin/Orchard.exe' @$commandFile + + - name: Run code generation + run: | + $commandFile = 'src/Orchard.Web/bin/codegen-commands.txt' + New-Item -Path $commandFile -ItemType File -Force + Set-Content -Path $commandFile -Value @' + feature enable Orchard.CodeGeneration + codegen module Orchard.CodeGeneration.TestModule + codegen theme Orchard.CodeGeneration.TestTheme /CreateProject:true + codegen moduletests Orchard.CodeGeneration.TestModule + '@ + & 'src/Orchard.Web/bin/Orchard.exe' @$commandFile + + - name: Compile with generated projects + run: msbuild Orchard.proj /m /v:minimal /t:Compile /p:TreatWarningsAsErrors=true -WarnAsError /NoWarn:CS2008 + compile-node: name: Compile client-side assets defaults: diff --git a/README.md b/README.md index 5a7073d2530..19d04cb9e96 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,14 @@ # Orchard -Orchard is a free, open source, community-focused Content Management System built on the ASP.NET MVC platform. +Orchard is a free, open source, community-focused Content Management System built on the ASP.NET MVC platform. You are looking at Orchard 1, the older, .NET Framework-based version that has been in development since 2009. -[![Join the chat at https://gitter.im/OrchardCMS/Orchard](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/OrchardCMS/Orchard?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) +If you're starting a new project (or maintaining a project built on Orchard 1), you should check out [Orchard Core](https://github.com/OrchardCMS/OrchardCore), the new generation of Orchard built on ASP.NET Core. You can also try it for free on [DotNest.com](https://dotnest.com)! -You can try it for free on [DotNest.com](https://dotnest.com) or on Microsoft Azure by clicking on this button. - -[![Deploy to Azure](https://azuredeploy.net/deploybutton.png)](https://portal.azure.com/#create/OutercurveFoundation.OrchardCMS) +Join the community discussion on [Discord](https://orchardcore.net/discord), where we also have a [channel dedicated to Orchard 1](https://discord.com/channels/551136772243980291/551137194689953848). ## About The Orchard Project -#### Please visit our website at https://orchardproject.net for the most current information about this project. +#### Please visit our website at https://orchardcore.net for the most current information about this project. Orchard is a free, open source, community-focused **Content Management System** built on the ASP.NET MVC platform. @@ -24,12 +22,12 @@ Our mission is to empower our users and foster a dedicated and diverse community Orchard is currently in version **[1.10.3](https://github.com/OrchardCMS/Orchard/releases/tag/1.10.3)**: It contains bugfixes and the more impactful changes and new features added in the latest major version (*1.10*). -We invite participation by the developer community in shaping the project’s direction, so that we can publicly validate our designs and development approach. +We invite participation by the developer community in shaping the project's direction, so that we can publicly validate our designs and development approach. All our releases are available on our [Releases](https://github.com/OrchardCMS/Orchard/releases) page, and we encourage interested developers to check out the source code on the Orchard GitHub site and get involved with the project. * [Download the latest release](https://github.com/OrchardCMS/Orchard/releases) -* [Feature roadmap](https://docs.orchardproject.net/en/latest/Documentation/Feature-roadmap/) -* [Docs and designs/specs](https://docs.orchardproject.net) +* [Feature roadmap](https://docs.orchardcore.net/projects/O1/en/latest/Documentation/Feature-roadmap/) +* [Docs and designs/specs](https://docs.orchardcore.net/projects/O1/en/latest/) ## How To Get Involved @@ -42,11 +40,7 @@ There are many ways you can contribute to Orchard: * [Find and file a bug](https://github.com/OrchardCMS/Orchard/issues) * [Propose a feature idea](https://github.com/OrchardCMS/Orchard/issues/new) * [Ask and answer questions on Stack Overflow](https://stackoverflow.com/questions/tagged/orchardcms) -* [Participate in our gitter.im chatroom](https://gitter.im/OrchardCMS/Orchard) -* [Submit a pull request](https://docs.orchardproject.net/en/latest/Documentation/Contributing-patches/) +* [Join us on Discord](https://orchardcore.net/discord) +* [Submit a pull request](https://docs.orchardcore.net/projects/O1/en/latest/Documentation/Contributing-patches/) * [Translate Orchard](https://crowdin.com/project/orchard-cms) -* [Contribute modules and themes to our gallery](https://gallery.orchardproject.net/) - -## The Future Of Orchard CMS: Orchard Core - -As the underlying frameworks (.NET, ASP.NET and ASP.NET MVC) are constantly evolving, Orchard of course keeps track of the changes and improvements of these: Orchard Core is the next generation of Orchard releases that is based on [ASP.NET Core](https://www.asp.net/core). Just like the current Orchard project, it's fully [open-source and is publicly available on GitHub](https://github.com/OrchardCMS/OrchardCore). Orchard Core (as a framework) is being built from scratch: it's still in development and does not share any of its code base (at least directly) with the current versions (1.x) of Orchard. +* [Contribute modules and themes to our gallery](https://gallery.orchardproject.net) diff --git a/src/Orchard.Web/Modules/Orchard.CodeGeneration/CodeGenerationTemplates/ModuleTestsCsProj.txt b/src/Orchard.Web/Modules/Orchard.CodeGeneration/CodeGenerationTemplates/ModuleTestsCsProj.txt index 8bd755adb72..889b3c7fac8 100644 --- a/src/Orchard.Web/Modules/Orchard.CodeGeneration/CodeGenerationTemplates/ModuleTestsCsProj.txt +++ b/src/Orchard.Web/Modules/Orchard.CodeGeneration/CodeGenerationTemplates/ModuleTestsCsProj.txt @@ -21,7 +21,7 @@ DEBUG;TRACE prompt 4 - ..\..\..\OrchardBasicCorrectness.ruleset + ..\..\..\..\OrchardBasicCorrectness.ruleset false @@ -35,16 +35,16 @@ false - + ..\..\..\..\packages\Autofac.3.5.2\lib\net40\Autofac.dll ..\..\..\..\packages\Moq.4.2.1510.2205\lib\net40\Moq.dll - - ..\..\..\..\packages\NHibernate.4.0.1.4000\lib\net40\NHibernate.dll + + ..\..\..\..\packages\NHibernate.4.1.2.4000\lib\net40\NHibernate.dll - + ..\..\..\..\packages\NUnit.2.5.10.11092\lib\nunit.framework.dll diff --git a/src/Orchard.Web/Modules/Orchard.CodeGeneration/CodeGenerationTemplates/ModuleTestsPackagesConfig.txt b/src/Orchard.Web/Modules/Orchard.CodeGeneration/CodeGenerationTemplates/ModuleTestsPackagesConfig.txt new file mode 100644 index 00000000000..6b79f20b18b --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.CodeGeneration/CodeGenerationTemplates/ModuleTestsPackagesConfig.txt @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.CodeGeneration/Commands/CodeGenerationCommands.cs b/src/Orchard.Web/Modules/Orchard.CodeGeneration/Commands/CodeGenerationCommands.cs index 7f35230942b..398617a2524 100644 --- a/src/Orchard.Web/Modules/Orchard.CodeGeneration/Commands/CodeGenerationCommands.cs +++ b/src/Orchard.Web/Modules/Orchard.CodeGeneration/Commands/CodeGenerationCommands.cs @@ -161,6 +161,8 @@ public void CreateModuleTests(string moduleName) { templateText = templateText.Replace("$$ModuleTypeLibGuid$$", Guid.NewGuid().ToString()); File.WriteAllText(propertiesPath + "\\AssemblyInfo.cs", templateText); content.Add(propertiesPath + "\\AssemblyInfo.cs"); + File.WriteAllText(testsPath + "packages.config", File.ReadAllText(_codeGenTemplatePath + "ModuleTestsPackagesConfig.txt")); + content.Add(testsPath + "packages.config"); var itemGroup = CreateProjectItemGroup(testsPath, content, folders); @@ -168,7 +170,7 @@ public void CreateModuleTests(string moduleName) { csprojText = csprojText.Replace("$$ProjectName$$", projectName); csprojText = csprojText.Replace("$$TestsProjectGuid$$", projectGuid); csprojText = csprojText.Replace("$$FileIncludes$$", itemGroup ?? ""); - csprojText = csprojText.Replace("$$OrchardReferences$$", GetOrchardReferences()); + csprojText = csprojText.Replace("$$OrchardReferences$$", GetOrchardReferences(modulesFolderRelativeDepth: 3)); File.WriteAllText(testsPath + projectName + ".csproj", csprojText); @@ -327,15 +329,17 @@ private static string CreateCsProject(string projectName, string projectGuid, st return text; } - private static string GetOrchardReferences() { + private static string GetOrchardReferences(int modulesFolderRelativeDepth = 2) { + var frameworkRelativeDepth = string.Join("\\", Enumerable.Repeat("..", modulesFolderRelativeDepth + 1)); + var coreRelativeDepth = string.Join("\\", Enumerable.Repeat("..", modulesFolderRelativeDepth)); return IsSourceEnlistment() ? -@" - {2D1D92BB-4555-4CBE-8D0E-63563D6CE4C6} +$@" + {{2D1D92BB-4555-4CBE-8D0E-63563D6CE4C6}} Orchard.Framework $(MvcBuildViews) - - {9916839C-39FC-4CEB-A5AF-89CA7E87119F} + + {{9916839C-39FC-4CEB-A5AF-89CA7E87119F}} Orchard.Core $(MvcBuildViews) " : diff --git a/src/Orchard.Web/Modules/Orchard.CodeGeneration/Orchard.CodeGeneration.csproj b/src/Orchard.Web/Modules/Orchard.CodeGeneration/Orchard.CodeGeneration.csproj index 05eb8c41bd3..6565c15f6ff 100644 --- a/src/Orchard.Web/Modules/Orchard.CodeGeneration/Orchard.CodeGeneration.csproj +++ b/src/Orchard.Web/Modules/Orchard.CodeGeneration/Orchard.CodeGeneration.csproj @@ -88,6 +88,7 @@ + @@ -158,4 +159,4 @@ - + \ No newline at end of file From 79f66cebf6921142c3186de4b43fbe1469f19b57 Mon Sep 17 00:00:00 2001 From: Benedek Farkas Date: Fri, 6 Dec 2024 10:09:52 +0100 Subject: [PATCH 3/3] #8752: Publish/unpublish Menu Items in the Menu editor (#8807) * Cleaning up Core/Navigation/Controllers/AdminController * Extending Core/Navigation/Controllers/AdminController to be able to publish/unpublish menuitems * Redirecting to menu when saving a menu item and using the menu item text in the notification * Fixing that saving a menu item shouldn't publish it if it's unpublished * Using the menu item text in the notification when publishing and unpublishing too --- .../Navigation/Controllers/AdminController.cs | 200 ++++++++++++------ .../Navigation/Services/MainMenuService.cs | 4 +- .../Core/Navigation/Views/Admin/Index.cshtml | 19 +- 3 files changed, 151 insertions(+), 72 deletions(-) diff --git a/src/Orchard.Web/Core/Navigation/Controllers/AdminController.cs b/src/Orchard.Web/Core/Navigation/Controllers/AdminController.cs index bbd1f621888..2337598dab9 100644 --- a/src/Orchard.Web/Core/Navigation/Controllers/AdminController.cs +++ b/src/Orchard.Web/Core/Navigation/Controllers/AdminController.cs @@ -1,74 +1,75 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.Linq; using System.Web.Mvc; +using System.Web.Routing; using Orchard.ContentManagement; +using Orchard.ContentManagement.Aspects; +using Orchard.ContentManagement.Handlers; +using Orchard.Core.Contents.Settings; using Orchard.Core.Navigation.Models; using Orchard.Core.Navigation.Services; using Orchard.Core.Navigation.ViewModels; +using Orchard.Data; +using Orchard.Exceptions; using Orchard.Localization; +using Orchard.Logging; using Orchard.Mvc.Extensions; +using Orchard.Mvc.Html; +using Orchard.Security; using Orchard.UI; -using Orchard.UI.Notify; using Orchard.UI.Navigation; +using Orchard.UI.Notify; using Orchard.Utility; -using System; -using Orchard.ContentManagement.Handlers; -using Orchard.Logging; -using Orchard.Exceptions; -using Orchard.ContentManagement.Aspects; using Orchard.Utility.Extensions; -using Orchard.Mvc.Html; -using Orchard.Core.Contents.Settings; -using Orchard.Data; -using System.Web.Routing; namespace Orchard.Core.Navigation.Controllers { [ValidateInput(false)] public class AdminController : Controller, IUpdateModel { + private readonly IContentManager _contentManager; + private readonly ITransactionManager _transactionManager; + private readonly IAuthorizer _authorizer; + private readonly INotifier _notifier; private readonly IMenuService _menuService; private readonly INavigationManager _navigationManager; private readonly IEnumerable _handlers; private readonly IMenuManager _menuManager; - private readonly IContentManager _contentManager; - private readonly ITransactionManager _transactionManager; public AdminController( IOrchardServices orchardServices, - IContentManager contentManager, - ITransactionManager transactionManager, IMenuService menuService, IMenuManager menuManager, INavigationManager navigationManager, IEnumerable handlers) { - _contentManager = contentManager; - _transactionManager = transactionManager; + _contentManager = orchardServices.ContentManager; + _transactionManager = orchardServices.TransactionManager; + _authorizer = orchardServices.Authorizer; + _notifier = orchardServices.Notifier; _menuService = menuService; _menuManager = menuManager; _navigationManager = navigationManager; _handlers = handlers; - Services = orchardServices; T = NullLocalizer.Instance; Logger = NullLogger.Instance; } public Localizer T { get; set; } public ILogger Logger { get; set; } - public IOrchardServices Services { get; set; } public ActionResult Index(NavigationManagementViewModel model, int? menuId) { - var menus = Services.ContentManager.Query("Menu").List().ToList() + var menus = _contentManager.Query("Menu").List().ToList() .OrderBy(x => x.ContentManager.GetItemMetadata(x).DisplayText); if (!menus.Any()) { - if (!Services.Authorizer.Authorize(Permissions.ManageMenus, T("Not allowed to manage menus"))) { + if (!_authorizer.Authorize(Permissions.ManageMenus, T("Not allowed to manage menus"))) { return new HttpUnauthorizedResult(); } return RedirectToAction("Create", "Admin", new { area = "Contents", id = "Menu", returnUrl = Request.RawUrl }); } - var allowedMenus = menus.Where(menu => Services.Authorizer.Authorize(Permissions.ManageMenus, menu)).ToList(); + var allowedMenus = menus.Where(menu => _authorizer.Authorize(Permissions.ManageMenus, menu)).ToList(); if (!allowedMenus.Any()) { return new HttpUnauthorizedResult(); @@ -87,7 +88,11 @@ public ActionResult Index(NavigationManagementViewModel model, int? menuId) { } if (model.MenuItemEntries == null || !model.MenuItemEntries.Any()) { - model.MenuItemEntries = _menuService.GetMenuParts(currentMenu.Id).Select(CreateMenuItemEntries).OrderBy(menuPartEntry => menuPartEntry.Position, new FlatPositionComparer()).ToList(); + model.MenuItemEntries = _menuService + .GetMenuParts(currentMenu.Id) + .Select(CreateMenuItemEntries) + .OrderBy(menuPartEntry => menuPartEntry.Position, new FlatPositionComparer()) + .ToList(); } model.MenuItemDescriptors = _menuManager.GetMenuItemTypes(); @@ -100,7 +105,10 @@ public ActionResult Index(NavigationManagementViewModel model, int? menuId) { [HttpPost, ActionName("Index")] public ActionResult IndexPOST(IList menuItemEntries, int? menuId) { - if (!Services.Authorizer.Authorize(Permissions.ManageMenus, (menuId.HasValue) ? _menuService.GetMenu(menuId.Value) : null, T("Couldn't manage the main menu"))) + if (!_authorizer.Authorize( + Permissions.ManageMenus, + menuId.HasValue ? _menuService.GetMenu(menuId.Value) : null, + T("Couldn't manage the menu"))) return new HttpUnauthorizedResult(); // See https://github.com/OrchardCMS/Orchard/issues/948 @@ -123,25 +131,15 @@ public ActionResult IndexPOST(IList menuItemEntries, int? menuId) return RedirectToAction("Index", new { menuId }); } - private MenuItemEntry CreateMenuItemEntries(MenuPart menuPart) { - return new MenuItemEntry { - MenuItemId = menuPart.Id, - IsMenuItem = menuPart.Is(), - Text = menuPart.MenuText, - Position = menuPart.MenuPosition, - Url = menuPart.Is() - ? menuPart.As().Url - : _navigationManager.GetUrl(null, Services.ContentManager.GetItemMetadata(menuPart).DisplayRouteValues), - ContentItem = menuPart.ContentItem, - }; - } - [HttpPost] public ActionResult Delete(int id) { MenuPart menuPart = _menuService.Get(id); int? menuId = null; - if (!Services.Authorizer.Authorize(Permissions.ManageMenus, (menuPart != null) ? _menuService.GetMenu(menuPart.Menu.Id) : null, T("Couldn't manage the main menu"))) + if (!_authorizer.Authorize( + Permissions.ManageMenus, + menuPart == null ? null : _menuService.GetMenu(menuPart.Menu.Id), + T("Couldn't manage the menu"))) return new HttpUnauthorizedResult(); if (menuPart != null) { @@ -155,7 +153,8 @@ public ActionResult Delete(int id) { foreach (var menuItem in menuItems.Concat(new[] { menuPart })) { // if the menu item is a concrete content item, don't delete it, just unreference the menu - if (!menuPart.ContentItem.TypeDefinition.Settings.ContainsKey("Stereotype") || menuPart.ContentItem.TypeDefinition.Settings["Stereotype"] != "MenuItem") { + if (!menuPart.ContentItem.TypeDefinition.Settings.ContainsKey("Stereotype") + || menuPart.ContentItem.TypeDefinition.Settings["Stereotype"] != "MenuItem") { menuPart.Menu = null; } else { @@ -168,26 +167,18 @@ public ActionResult Delete(int id) { return RedirectToAction("Index", new { menuId }); } - bool IUpdateModel.TryUpdateModel(TModel model, string prefix, string[] includeProperties, string[] excludeProperties) { - return TryUpdateModel(model, prefix, includeProperties, excludeProperties); - } - - void IUpdateModel.AddModelError(string key, LocalizedString errorMessage) { - ModelState.AddModelError(key, errorMessage.ToString()); - } - public ActionResult CreateMenuItem(string id, int menuId, string returnUrl) { - if (!Services.Authorizer.Authorize(Permissions.ManageMenus, _menuService.GetMenu(menuId), T("Couldn't manage the main menu"))) + if (!_authorizer.Authorize(Permissions.ManageMenus, _menuService.GetMenu(menuId), T("Couldn't manage the menu"))) return new HttpUnauthorizedResult(); // create a new temporary menu item - var menuPart = Services.ContentManager.New(id); + var menuPart = _contentManager.New(id); if (menuPart == null) return HttpNotFound(); // load the menu - var menu = Services.ContentManager.Get(menuId); + var menu = _contentManager.Get(menuId); if (menu == null) return HttpNotFound(); @@ -196,7 +187,7 @@ public ActionResult CreateMenuItem(string id, int menuId, string returnUrl) { // filter the content items for this specific menu menuPart.MenuPosition = Position.GetNext(_navigationManager.BuildMenu(menu)); menuPart.Menu = menu; - var model = Services.ContentManager.BuildEditor(menuPart); + var model = _contentManager.BuildEditor(menuPart); return View(model); } @@ -206,32 +197,32 @@ public ActionResult CreateMenuItem(string id, int menuId, string returnUrl) { } Logger.Error(T("Creating menu item failed: {0}", exception.Message).Text); - Services.Notifier.Error(T("Creating menu item failed: {0}", exception.Message)); + _notifier.Error(T("Creating menu item failed: {0}", exception.Message)); return this.RedirectLocal(returnUrl, () => RedirectToAction("Index")); } } [HttpPost, ActionName("CreateMenuItem")] public ActionResult CreateMenuItemPost(string id, int menuId, string returnUrl) { - if (!Services.Authorizer.Authorize(Permissions.ManageMenus, _menuService.GetMenu(menuId), T("Couldn't manage the main menu"))) + if (!_authorizer.Authorize(Permissions.ManageMenus, _menuService.GetMenu(menuId), T("Couldn't manage the menu"))) return new HttpUnauthorizedResult(); - var menuPart = Services.ContentManager.New(id); + var menuPart = _contentManager.New(id); if (menuPart == null) return HttpNotFound(); // load the menu - var menu = Services.ContentManager.Get(menuId); + var menu = _contentManager.Get(menuId); if (menu == null) return HttpNotFound(); menuPart.Menu = menu; - var model = Services.ContentManager.UpdateEditor(menuPart, this); + var model = _contentManager.UpdateEditor(menuPart, this); menuPart.MenuPosition = Position.GetNext(_navigationManager.BuildMenu(menu)); - Services.ContentManager.Create(menuPart); + _contentManager.Create(menuPart); if (!ModelState.IsValid) { - Services.TransactionManager.Cancel(); + _transactionManager.Cancel(); return View(model); } - Services.Notifier.Information(T("Your {0} has been added.", menuPart.TypeDefinition.DisplayName)); + _notifier.Information(T("Your {0} has been added.", menuPart.TypeDefinition.DisplayName)); return this.RedirectLocal(returnUrl, () => RedirectToAction("Index")); } @@ -241,7 +232,7 @@ public ActionResult Edit(int id) { if (contentItem == null) return HttpNotFound(); - if (!Services.Authorizer.Authorize(Permissions.ManageMenus, contentItem.Content.MenuPart.Menu, T("Couldn't manage the main menu"))) + if (!_authorizer.Authorize(Permissions.ManageMenus, contentItem.Content.MenuPart.Menu, T("Couldn't manage the menu"))) return new HttpUnauthorizedResult(); var model = _contentManager.BuildEditor(contentItem); @@ -252,19 +243,81 @@ public ActionResult Edit(int id) { [Mvc.FormValueRequired("submit.Save")] public ActionResult EditPOST(int id, string returnUrl) { return EditPOST(id, returnUrl, contentItem => { - if (!contentItem.Has() && !contentItem.TypeDefinition.Settings.GetModel().Draftable) + if (!contentItem.Has() + && !contentItem.TypeDefinition.Settings.GetModel().Draftable + && contentItem.IsPublished()) _contentManager.Publish(contentItem); }); } + + [HttpPost] + // Copy of Contents/AdminController/Publish, but with different permission check and redirect. + public ActionResult Publish(int id) { + var menuPart = _contentManager.GetLatest(id); + if (menuPart == null) + return HttpNotFound(); + + if (!_authorizer.Authorize(Permissions.ManageMenus, menuPart.Menu, T("Couldn't manage the menu"))) + return new HttpUnauthorizedResult(); + + _contentManager.Publish(menuPart.ContentItem); + + _notifier.Information( + string.IsNullOrWhiteSpace(menuPart.MenuText) + ? string.IsNullOrWhiteSpace(menuPart.TypeDefinition.DisplayName) + ? T("Your content has been published.") + : T("Your {0} has been published.", menuPart.TypeDefinition.DisplayName) + : T("'{0}' has been published.", menuPart.MenuText)); + + return RedirectToAction("Index", new { menuId = menuPart.Menu.Id }); + } + + [HttpPost] + // Copy of Contents/AdminController/Unpublish, but with different permission check and redirect. + public ActionResult Unpublish(int id) { + var menuPart = _contentManager.GetLatest(id); + if (menuPart == null) + return HttpNotFound(); + + if (!_authorizer.Authorize(Permissions.ManageMenus, menuPart.Menu, T("Couldn't manage the menu"))) + return new HttpUnauthorizedResult(); + + _contentManager.Unpublish(menuPart.ContentItem); + + _notifier.Information( + string.IsNullOrWhiteSpace(menuPart.MenuText) + ? string.IsNullOrWhiteSpace(menuPart.TypeDefinition.DisplayName) + ? T("Your content has been unpublished.") + : T("Your {0} has been unpublished.", menuPart.TypeDefinition.DisplayName) + : T("'{0}' has been unpublished.", menuPart.MenuText)); + + return RedirectToAction("Index", new { menuId = menuPart.Menu.Id }); + } + + private MenuItemEntry CreateMenuItemEntries(MenuPart menuPart) { + return new MenuItemEntry { + MenuItemId = menuPart.Id, + IsMenuItem = menuPart.Is(), + Text = menuPart.MenuText, + Position = menuPart.MenuPosition, + Url = menuPart.Is() + ? menuPart.As().Url + : _navigationManager.GetUrl(null, _contentManager.GetItemMetadata(menuPart).DisplayRouteValues), + ContentItem = menuPart.ContentItem, + }; + } + private ActionResult EditPOST(int id, string returnUrl, Action conditionallyPublish) { - var contentItem = _contentManager.Get(id, VersionOptions.DraftRequired); + var menuPart = _contentManager.GetDraftRequired(id); - if (contentItem == null) + if (menuPart == null) return HttpNotFound(); - if (!Services.Authorizer.Authorize(Permissions.ManageMenus, contentItem.Content.MenuPart.Menu, T("Couldn't manage the main menu"))) + if (!_authorizer.Authorize(Permissions.ManageMenus, menuPart.Menu, T("Couldn't manage the menu"))) return new HttpUnauthorizedResult(); + var contentItem = menuPart.ContentItem; + string previousRoute = null; if (contentItem.Has() && !string.IsNullOrWhiteSpace(returnUrl) @@ -289,11 +342,22 @@ private ActionResult EditPOST(int id, string returnUrl, Action cond returnUrl = Url.ItemDisplayUrl(contentItem); } - Services.Notifier.Information(string.IsNullOrWhiteSpace(contentItem.TypeDefinition.DisplayName) - ? T("Your content has been saved.") - : T("Your {0} has been saved.", contentItem.TypeDefinition.DisplayName)); + _notifier.Information( + string.IsNullOrWhiteSpace(menuPart.MenuText) + ? string.IsNullOrWhiteSpace(contentItem.TypeDefinition.DisplayName) + ? T("Your content has been saved.") + : T("Your {0} has been saved.", contentItem.TypeDefinition.DisplayName) + : T("'{0}' has been saved.", menuPart.MenuText)); + + return RedirectToAction("Index", new { menuId = menuPart.Menu.Id }); + } + + bool IUpdateModel.TryUpdateModel(TModel model, string prefix, string[] includeProperties, string[] excludeProperties) { + return TryUpdateModel(model, prefix, includeProperties, excludeProperties); + } - return this.RedirectLocal(returnUrl, () => RedirectToAction("Edit", new RouteValueDictionary { { "Id", contentItem.Id } })); + void IUpdateModel.AddModelError(string key, LocalizedString errorMessage) { + ModelState.AddModelError(key, errorMessage.ToString()); } } } diff --git a/src/Orchard.Web/Core/Navigation/Services/MainMenuService.cs b/src/Orchard.Web/Core/Navigation/Services/MainMenuService.cs index ea3f94b2fc4..682df695da5 100644 --- a/src/Orchard.Web/Core/Navigation/Services/MainMenuService.cs +++ b/src/Orchard.Web/Core/Navigation/Services/MainMenuService.cs @@ -19,8 +19,8 @@ public IEnumerable Get() { public IEnumerable GetMenuParts(int menuId) { return _contentManager - .Query() - .Where( x => x.MenuId == menuId) + .Query(VersionOptions.Latest) + .Where(x => x.MenuId == menuId) .List(); } diff --git a/src/Orchard.Web/Core/Navigation/Views/Admin/Index.cshtml b/src/Orchard.Web/Core/Navigation/Views/Admin/Index.cshtml index bcae792ed5f..7acaa2e2d01 100644 --- a/src/Orchard.Web/Core/Navigation/Views/Admin/Index.cshtml +++ b/src/Orchard.Web/Core/Navigation/Views/Admin/Index.cshtml @@ -1,4 +1,6 @@ @model NavigationManagementViewModel + +@using Orchard.ContentManagement; @using Orchard.Core.Navigation.ViewModels; @using Orchard.Utility.Extensions; @@ -115,8 +117,21 @@ - @Html.ItemEditLink(T("Edit").Text, menuPartEntry.ContentItem, new { returnUrl = Request.RawUrl })@T(" | ") - @Html.Link(T("Delete").Text, Url.ItemRemoveUrl(menuPartEntry.ContentItem,null), new { itemprop = "RemoveUrl UnsafeUrl" }) + @{ + var menuItemHasPublished = menuPartEntry.ContentItem.HasPublished(); + } + + @Html.Link( + menuItemHasPublished ? T("Unpublish").Text : T("Publish").Text, + Url.Action( + menuItemHasPublished ? "Unpublish": "Publish", + "Admin", + new { area = "Navigation", id = menuPartEntry.ContentItem.Id }), + new { itemprop = "UnsafeUrl" }) + @T(" | ") + @Html.ItemEditLink(T("Edit").Text, menuPartEntry.ContentItem, new { returnUrl = Request.RawUrl }) + @T(" | ") + @Html.Link(T("Delete").Text, Url.ItemRemoveUrl(menuPartEntry.ContentItem, null), new { itemprop = "RemoveUrl UnsafeUrl" })