Compare commits

..

2 Commits

Author SHA1 Message Date
Kegan Maher
5ad9f50471 consistent permission checks for working with Blog Posts 2016-10-27 12:21:07 -07:00
Kegan Maher
b25b13aa83 check MetaListOwnBlogs for consistency
Fixes #4767
2016-10-27 12:21:07 -07:00
902 changed files with 5741 additions and 98998 deletions

View File

@@ -1,33 +1,22 @@
@echo off
REM Necessary for the InstallDir variable to work inside the MsBuild-finding loop below.
SETLOCAL ENABLEDELAYEDEXPANSION
for /f "usebackq tokens=1* delims=: " %%i in (`lib\vswhere\vswhere -latest -version "[15.0,16.0)" -requires Microsoft.Component.MSBuild`) do (
if /i "%%i"=="installationPath" (
set InstallDir=%%j
echo !InstallDir!
if exist "!InstallDir!\MSBuild\15.0\Bin\MSBuild.exe" (
echo "Using MSBuild from Visual Studio 2017"
set msbuild="!InstallDir!\MSBuild\15.0\Bin\MSBuild.exe"
goto build
)
)
)
FOR %%b in (
"%VS140COMNTOOLS%\vsvars32.bat"
"%VS120COMNTOOLS%\vsvars32.bat"
"%VS110COMNTOOLS%\vsvars32.bat"
"%VS140COMNTOOLS%..\..\VC\vcvarsall.bat"
"%ProgramFiles(x86)%\Microsoft Visual Studio 14.0\VC\vcvarsall.bat"
"%ProgramFiles%\Microsoft Visual Studio 14.0\VC\vcvarsall.bat"
"%VS120COMNTOOLS%..\..\VC\vcvarsall.bat"
"%ProgramFiles(x86)%\Microsoft Visual Studio 12.0\VC\vcvarsall.bat"
"%ProgramFiles%\Microsoft Visual Studio 12.0\VC\vcvarsall.bat"
"%VS110COMNTOOLS%..\..\VC\vcvarsall.bat"
"%ProgramFiles(x86)%\Microsoft Visual Studio 11.0\VC\vcvarsall.bat"
"%ProgramFiles%\Microsoft Visual Studio 11.0\VC\vcvarsall.bat"
) do (
if exist %%b (
echo "Using MSBuild from %%b"
call %%b
set msbuild="msbuild"
goto build
call %%b x86
goto build
)
)
echo "Unable to detect suitable environment. Build may not succeed."
:build
@@ -42,8 +31,6 @@ IF "%solution%" == "" SET solution=src\Orchard.sln
lib\nuget\nuget.exe restore %solution%
%msbuild% /t:%target% %project% /p:Solution=%solution% /m
:end
msbuild /t:%target% %project% /p:Solution=%solution% /m
pause

View File

@@ -14,10 +14,9 @@
<SourceArtifactFolder>$(ArtifactsFolder)\Source</SourceArtifactFolder>
<MsDeployArtifactFolder>$(ArtifactsFolder)\MsDeploy</MsDeployArtifactFolder>
<GalleryArtifactFolder>$(ArtifactsFolder)\Gallery</GalleryArtifactFolder>
<OrchardWebFolder>$(SrcFolder)\Orchard.Web</OrchardWebFolder>
<ModulesSrcFolder>$(OrchardWebFolder)\Modules</ModulesSrcFolder>
<OrchardCoreSrcFolder>$(OrchardWebFolder)\Core</OrchardCoreSrcFolder>
<ThemesSrcFolder>$(OrchardWebFolder)\Themes</ThemesSrcFolder>
<ModulesSrcFolder>$(MSBuildProjectDirectory)\src\Orchard.Web\Modules</ModulesSrcFolder>
<OrchardCoreSrcFolder>$(MSBuildProjectDirectory)\src\Orchard.Web\Core</OrchardCoreSrcFolder>
<ThemesSrcFolder>$(MSBuildProjectDirectory)\src\Orchard.Web\Themes</ThemesSrcFolder>
<CompileFolder>$(BuildFolder)\Compile</CompileFolder>
<WebSitesFolder>$(CompileFolder)\_PublishedWebsites</WebSitesFolder>
@@ -130,25 +129,11 @@
<MSBuild
Projects="$(Solution)"
Targets="Build"
Properties="Configuration=$(Configuration);OutputPath=$(CompileFolder);MvcBuildViews=false" />
Properties="Configuration=$(Configuration);OutputPath=$(CompileFolder)" />
<!-- Compile to "regular" output folder for devs using VS locally -->
<MSBuild
Projects="$(Solution)"
Targets="Build"
Properties="Configuration=$(Configuration);MvcBuildViews=$(MvcBuildViews)" />
</Target>
<Target Name="BuildViews">
<!-- To make sure that Roslyn tools are available, even if the Compile task was not called before this. -->
<MSBuild
Projects="$(OrchardWebFolder)\Orchard.Web.csproj"
Targets="CopyRoslynFilesToOutputFolder"
Properties="Configuration=$(Configuration)" />
<!-- The actual compilation with views also compiled. -->
<MSBuild
Projects="$(Solution)"
Targets="Build"
Properties="Configuration=$(Configuration);MvcBuildViews=true" />
Targets="Build"/>
</Target>
<Target Name="CompileMsBuildTasks">
@@ -182,12 +167,11 @@
</Target>
<Target Name="Spec" DependsOnTargets="Package-Stage">
<!-- Running SpecFlow tests -->
<CreateItem Include="$(CompileFolder)\*.Specs.*dll">
<CreateItem Include="$(CompileFolder)\*.Specs.dll">
<Output TaskParameter="Include" ItemName="SpecAssemblies" />
</CreateItem>
<NUnit Assemblies="@(SpecAssemblies)" ToolPath="@(NUnitPackageToolsFolder)" WorkingDirectory="$(CompileFolder)" OutputXmlFile="$(BuildFolder)\Orchard.Specs.xml" />
<NUnit Assemblies="@(SpecAssemblies)" ToolPath="$(NUnitPackageToolsFolder)" />
</Target>
<!-- Packaging (Stage) -->
@@ -212,7 +196,6 @@
<Stage-Media Include="$(SrcFolder)\Orchard.Web\Media\OrchardLogo.png" />
<Stage-PoFiles Include="$(SrcFolder)\Orchard.Web\**\*.po" />
<Stage-Core Include="$(WebSitesFolder)\Orchard.Core\**\*" Exclude="$(WebSitesFolder)\Orchard.Core\**\bin\**\*" />
<Stage-Roslyn Include="$(SrcFolder)\Orchard.Web\bin\roslyn\*" />
<!-- Get list of module names from the module definition files within ModulesSrcFolder -->
<Stage-Modules-Definitions Include="$(ModulesSrcFolder)\**\Module.txt" />
@@ -254,7 +237,7 @@
<!-- Copying module binaries is somewhat tricky: From a module "bin" directory, we
only want to include the files that are _not_ already present in
the "Orchard.Web\Bin" folder (except for "Orchard.Web\bin\roslyn"). -->
the "Orchard.Web\Bin" folder. -->
<FilterModuleBinaries
ModulesBinaries="@(Stage-Modules-Binaries)"
OrchardWebBinaries="@(Stage-Orchard-Web-Bins)">
@@ -284,7 +267,6 @@
<Copy SourceFiles="@(Stage-Themes-Custom)" DestinationFiles="@(Stage-Themes-Custom->'$(StageFolder)\Themes\%(ThemeName)\%(RecursiveDir)%(Filename)%(Extension)')"/>
<Copy SourceFiles="@(Stage-Themes-Binaries-Unique)" DestinationFiles="@(Stage-Themes-Binaries-Unique->'$(StageFolder)\Themes\%(ThemeName)\%(RecursiveDir)%(Filename)%(Extension)')"/>
<Copy SourceFiles="@(Stage-Themes-Sources)" DestinationFolder="$(StageFolder)\Themes\%(RecursiveDir)"/>
<Copy SourceFiles="@(Stage-Roslyn)" DestinationFolder="$(StageFolder)\bin\roslyn"/>
<MakeDir Directories="$(StageFolder)\App_Data"/>
<WriteLinesToFile File="$(StageFolder)\App_Data\_marker.txt" Lines="some_text" Overwrite="true"/>
@@ -403,6 +385,11 @@
</ItemGroup>
<Copy SourceFiles="@(Profiling-Web)" DestinationFolder="$(ProfilingFolder)\%(RecursiveDir)"/>
<XmlUpdate XmlFileName="$(ProfilingFolder)\web.config"
XPath="/configuration/system.web/trust/@level"
Value="Full" />
</Target>
<Target Name="Profiling-Setup">
@@ -410,7 +397,7 @@
<Output TaskParameter="Lines" ItemName="ProfilingSetupCommands"/>
</ReadLinesFromFile>
<Exec Command="&quot;$(ProfilingFolder)\bin\Orchard.exe&quot; %(ProfilingSetupCommands.Identity)" WorkingDirectory="$(ProfilingFolder)"/>
<Exec Command="$(ProfilingFolder)\bin\Orchard.exe %(ProfilingSetupCommands.Identity)" WorkingDirectory="$(ProfilingFolder)"/>
</Target>
<!-- Gallery Packaging -->

View File

@@ -10,43 +10,47 @@ You can try it for free on [DotNest.com](https://dotnest.com) or on Microsoft Az
## 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 http://orchardproject.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.
Orchard is built on a modern architecture that puts extensibility up-front, as its number one concern. All components in Orchard can be replaced or extended. Content is built from easily composable building blocks. Modules extend the system in a very decoupled fashion, where a commenting module for example can as easily apply to pages, blog posts, photos or products. A rich UI composition system completes the picture and ensures that you can get the exact presentation that you need for your content.
Orchard is delivered under the [.NET Foundation](https://www.dotnetfoundation.org/projects?searchquery=Orchard&type=project). It is licensed under a [New BSD license](https://www.opensource.org/licenses/bsd-license.php), which is approved by the OSI.
Orchard is delivered under the [.NET Foundation](http://www.dotnetfoundation.org/orchard). It is licensed under a [New BSD license](http://www.opensource.org/licenses/bsd-license.php), which is approved by the OSI.
Our mission is to empower our users and foster a dedicated and diverse community that builds the CMS that we all want to use.
## Project Status
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*).
Orchard is currently in version **[1.10.1](https://github.com/OrchardCMS/Orchard/releases/tag/1.10.1)**: 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 projects 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.
All our releases are available on our [Releases](https://github.com/OrchardCMS/Orchard/releases) page, and it's easy to [Install Orchard using the Web Platform Installer](http://docs.orchardproject.net/Documentation/Installing-Orchard) as well. 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](http://docs.orchardproject.net/Documentation/feature-roadmap)
* [Docs and designs/specs](http://www.orchardproject.net/docs)
* [About us](http://www.orchardproject.net/about)
* [Contact us](mailto:ofeedbk@microsoft.com)
## How To Get Involved
We hope that by engaging with the community we will continue to shape Orchard into a valuable set of tools and applications. The Orchard team is committed to open community participation and accepts code contributions. We encourage community participation at all levels from general project feedback to bug fixes and patches.
There are many ways you can contribute to Orchard:
There are many ways you can [contribute to Orchard](http://orchardproject.net/contribution):
* [Check out the code](https://github.com/OrchardCMS/Orchard)
* [Write documentation](https://github.com/OrchardCMS/OrchardDoc)
* [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)
* [Propose a feature idea](http://orchard.uservoice.com)
* [Ask and answer questions in our forums](http://www.orchardproject.net/discussions) and [on Stack Overflow](http://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/)
* [Translate Orchard](https://crowdin.com/project/orchard-cms)
* [Contribute modules and themes to our gallery](https://gallery.orchardproject.net/)
* [Participate in forum discussions](http://orchard.codeplex.com/discussions)
* [Submit a pull request](http://docs.orchardproject.net/Documentation/Contributing-patches)
* [Translate Orchard](http://orchardproject.net/localization)
* [Contribute modules and themes to our gallery](http://gallery.orchardproject.net/)
* [Send us feedback](mailto:ofeedbk@microsoft.com)
## The Future Of Orchard CMS: Orchard Core
## The Future Of Orchard CMS: Orchard 2
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.
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 2 is the next generation of Orchard releases that is based on [ASP.NET Core](http://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/Orchard2). Orchard 2 (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 of Orchard.

Binary file not shown.

View File

@@ -1,11 +0,0 @@
root = true
[*]
end_of_line = crlf
indent_style = space
indent_size = 4
trim_trailing_whitespace = true
[*.cs]
csharp_new_line_before_open_brace = none
dotnet_sort_system_directives_first = true

View File

@@ -41,7 +41,6 @@
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<LangVersion>latest</LangVersion>
<CodeAnalysisRuleSet>..\OrchardBasicCorrectness.ruleset</CodeAnalysisRuleSet>
<PlatformTarget>AnyCPU</PlatformTarget>
<Prefer32Bit>false</Prefer32Bit>
@@ -53,7 +52,6 @@
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<LangVersion>latest</LangVersion>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<PlatformTarget>AnyCPU</PlatformTarget>
<Prefer32Bit>false</Prefer32Bit>

View File

@@ -30,5 +30,5 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
[assembly: AssemblyVersion("1.10.3")]
[assembly: AssemblyFileVersion("1.10.3")]
[assembly: AssemblyVersion("1.10.1")]
[assembly: AssemblyFileVersion("1.10.1")]

View File

@@ -41,7 +41,6 @@
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<LangVersion>latest</LangVersion>
<PlatformTarget>AnyCPU</PlatformTarget>
<CodeAnalysisRuleSet>..\OrchardBasicCorrectness.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>false</Prefer32Bit>
@@ -53,7 +52,6 @@
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<LangVersion>latest</LangVersion>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>

View File

@@ -30,5 +30,5 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
[assembly: AssemblyVersion("1.10.3")]
[assembly: AssemblyFileVersion("1.10.3")]
[assembly: AssemblyVersion("1.10.1")]
[assembly: AssemblyFileVersion("1.10.1")]

View File

@@ -1 +1 @@
setup /SiteName:Profiling /AdminUsername:admin /AdminPassword:profiling-secret /DatabaseProvider:SQLServer /DatabaseConnectionString:"Data Source=.;Initial Catalog=Orchard;Integrated Security=True" /EnabledFeatures:Profiling,Orchard.Framework,Common,Containers,Contents,Dashboard,Feeds,Navigation,Scheduling,Settings,Shapes,Title,PackagingServices,Gallery,Orchard.PublishLater,Orchard.Blogs,Orchard.Comments,Orchard.ContentTypes,Orchard.Resources,Orchard.Lists,Orchard.MediaLibrary,Orchard.ContentPicker,Orchard.MediaPicker,Orchard.Modules,Orchard.Packaging,Orchard.Pages,Orchard.Recipes,Orchard.Roles,Orchard.Tags,Orchard.Themes,Orchard.Users,Orchard.Scripting,Orchard.Scripting.Lightweight,Orchard.Widgets,TinyMce,TheThemeMachine,Orchard.Tokens,Orchard.Alias,Orchard.Autoroute
setup /SiteName:Profiling /AdminUsername:admin /AdminPassword:profiling-secret /DatabaseProvider:SQLServer /DatabaseConnectionString:"Data Source=.;Initial Catalog=Orchard;Integrated Security=True" /EnabledFeatures:Profiling,Orchard.Framework,Common,Containers,Contents,Dashboard,Feeds,Navigation,Scheduling,Settings,Shapes,Title,PackagingServices,Gallery,Orchard.PublishLater,Orchard.Blogs,Orchard.Comments,Orchard.ContentTypes,Orchard.Resources,Orchard.Lists,Orchard.MediaLibrary,Orchard.ContentPicker,Orchard.MediaPicker,Orchard.Modules,Orchard.Packaging,Orchard.Pages,Orchard.Recipes,Orchard.Roles,Orchard.Tags,Orchard.Themes,Orchard.Users,Orchard.Scripting,Orchard.Scripting.Lightweight,Orchard.Widgets,TinyMce,TheThemeMachine,Orchard.Tokens,Orchard.Alias,Orchard.Autoroute

View File

@@ -4,6 +4,8 @@ using Orchard.ContentManagement;
using Orchard.ContentManagement.Aspects;
using Orchard.Core.Contents;
using Orchard.Data;
using Orchard.Roles.Models;
using Orchard.Roles.Services;
using Orchard.Security;
using Orchard.Security.Permissions;
using Orchard.Specs.Hosting.Orchard.Web;

View File

@@ -11,22 +11,6 @@ using TechTalk.SpecFlow;
namespace Orchard.Specs.Bindings {
[Binding]
public class OrchardSiteFactory : BindingBase {
[Given(@"I have a clean site with standard extensions")]
public void GivenIHaveACleanSiteWithStandardExtensions() {
GivenIHaveACleanSiteWithStandardExtensions("/");
}
[Given(@"I have a clean site with standard extensions at ""(.*)\""")]
public void GivenIHaveACleanSiteWithStandardExtensions(string virtualDirectory) {
Binding<WebAppHosting>().GivenIHaveACleanSiteWith(
virtualDirectory,
// This is the list of extensions which will be copied over into the temporary Orchard folder.
TableData(
new { extension = "Module", names = "Lucene, Markdown, Orchard.Alias, Orchard.AntiSpam, Orchard.ArchiveLater, Orchard.Autoroute, Orchard.Azure, Orchard.Blogs, Orchard.Caching, Orchard.CodeGeneration, Orchard.Comments, Orchard.ContentPermissions, Orchard.ContentPicker, Orchard.ContentTypes, Orchard.DesignerTools, Orchard.Email, Orchard.Fields, Orchard.Forms, Orchard.ImageEditor, Orchard.ImportExport, Orchard.Indexing, Orchard.JobsQueue, Orchard.Resources, Orchard.Layouts, Orchard.Lists, Orchard.Localization, Orchard.MediaLibrary, Orchard.MediaProcessing, Orchard.Migrations, Orchard.Modules, Orchard.MultiTenancy, Orchard.OutputCache, Orchard.Packaging, Orchard.Pages, Orchard.Projections, Orchard.PublishLater, Orchard.Recipes, Orchard.Roles, Orchard.Scripting, Orchard.Scripting.CSharp, Orchard.Scripting.Dlr, Orchard.Search, Orchard.SecureSocketsLayer, Orchard.Setup, Orchard.Tags, Orchard.Taxonomies, Orchard.Templates, Orchard.Themes, Orchard.Tokens, Orchard.Users, Orchard.Warmup, Orchard.Widgets, Orchard.Workflows, Orchard.Conditions, SysCache, TinyMce, Upgrade" },
new { extension = "Core", names = "Common, Containers, Contents, Dashboard, Feeds, Navigation, Scheduling, Settings, Shapes, Title, XmlRpc" },
new { extension = "Theme", names = "SafeMode, TheAdmin, TheThemeMachine" }));
}
[Given(@"I have installed Orchard")]
public void GivenIHaveInstalledOrchard() {
GivenIHaveInstalledOrchard("/");
@@ -36,7 +20,13 @@ namespace Orchard.Specs.Bindings {
public void GivenIHaveInstalledOrchard(string virtualDirectory) {
var webApp = Binding<WebAppHosting>();
GivenIHaveACleanSiteWithStandardExtensions(virtualDirectory);
// this is the list of module which will be copied over into the temporary Orchard folder
webApp.GivenIHaveACleanSiteWith(
virtualDirectory,
TableData(
new { extension = "Module", names = "Lucene, Markdown, Orchard.Alias, Orchard.AntiSpam, Orchard.ArchiveLater, Orchard.Autoroute, Orchard.Azure, Orchard.Blogs, Orchard.Caching, Orchard.CodeGeneration, Orchard.Comments, Orchard.ContentPermissions, Orchard.ContentPicker, Orchard.ContentTypes, Orchard.DesignerTools, Orchard.Email, Orchard.Fields, Orchard.Forms, Orchard.ImageEditor, Orchard.ImportExport, Orchard.Indexing, Orchard.JobsQueue, Orchard.Resources, Orchard.Layouts, Orchard.Lists, Orchard.Localization, Orchard.MediaLibrary, Orchard.MediaProcessing, Orchard.Migrations, Orchard.Modules, Orchard.MultiTenancy, Orchard.OutputCache, Orchard.Packaging, Orchard.Pages, Orchard.Projections, Orchard.PublishLater, Orchard.Recipes, Orchard.Roles, Orchard.Scripting, Orchard.Scripting.CSharp, Orchard.Scripting.Dlr, Orchard.Search, Orchard.SecureSocketsLayer, Orchard.Setup, Orchard.Tags, Orchard.Taxonomies, Orchard.Templates, Orchard.Themes, Orchard.Tokens, Orchard.Users, Orchard.Warmup, Orchard.Widgets, Orchard.Workflows, Orchard.Conditions, SysCache, TinyMce, Upgrade" },
new { extension = "Core", names = "Common, Containers, Contents, Dashboard, Feeds, Navigation, Scheduling, Settings, Shapes, Title, XmlRpc" },
new { extension = "Theme", names = "SafeMode, TheAdmin, TheThemeMachine" }));
webApp.WhenIGoTo("Setup");

View File

@@ -4,6 +4,8 @@ using Orchard.ContentManagement;
using Orchard.ContentManagement.Aspects;
using Orchard.Core.Contents;
using Orchard.Data;
using Orchard.Roles.Models;
using Orchard.Roles.Services;
using Orchard.Security;
using Orchard.Security.Permissions;
using Orchard.Specs.Hosting.Orchard.Web;

View File

@@ -48,7 +48,7 @@ Scenario: Creating and using Boolean fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[Active].BooleanFieldSettings.Hint | Check if the event is active |
| Fields[0].BooleanFieldSettings.Hint | Check if the event is active |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
Then I should see "Check if the event is active"
@@ -57,7 +57,7 @@ Scenario: Creating and using Boolean fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[Active].BooleanFieldSettings.DefaultValue | True |
| Fields[0].BooleanFieldSettings.DefaultValue | True |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
Then I should see "checked=\"checked\""
@@ -66,7 +66,7 @@ Scenario: Creating and using Boolean fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[Active].BooleanFieldSettings.Optional | false |
| Fields[0].BooleanFieldSettings.Optional | false |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
And I fill in

View File

@@ -157,7 +157,7 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table4.AddRow(new string[] {
"Fields[Active].BooleanFieldSettings.Hint",
"Fields[0].BooleanFieldSettings.Hint",
"Check if the event is active"});
#line 49
testRunner.And("I fill in", ((string)(null)), table4, "And ");
@@ -174,7 +174,7 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table5.AddRow(new string[] {
"Fields[Active].BooleanFieldSettings.DefaultValue",
"Fields[0].BooleanFieldSettings.DefaultValue",
"True"});
#line 58
testRunner.And("I fill in", ((string)(null)), table5, "And ");
@@ -191,7 +191,7 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table6.AddRow(new string[] {
"Fields[Active].BooleanFieldSettings.Optional",
"Fields[0].BooleanFieldSettings.Optional",
"false"});
#line 67
testRunner.And("I fill in", ((string)(null)), table6, "And ");

View File

@@ -61,7 +61,7 @@ Scenario: Creating and using Date fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[EventDate].DateTimeFieldSettings.Hint | Enter the date of the event |
| Fields[0].DateTimeFieldSettings.Hint | Enter the date of the event |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
Then I should see "Enter the date of the event"
@@ -70,7 +70,7 @@ Scenario: Creating and using Date fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[EventDate].DateTimeFieldSettings.Display | DateOnly |
| Fields[0].DateTimeFieldSettings.Display | DateOnly |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
Then I should see "Event.EventDate.Editor.Date"
@@ -80,7 +80,7 @@ Scenario: Creating and using Date fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[EventDate].DateTimeFieldSettings.Display | TimeOnly |
| Fields[0].DateTimeFieldSettings.Display | TimeOnly |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
Then I should see "Event.EventDate.Editor.Time"
@@ -90,8 +90,8 @@ Scenario: Creating and using Date fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[EventDate].DateTimeFieldSettings.Display | DateAndTime |
| Fields[EventDate].DateTimeFieldSettings.Required | true |
| Fields[0].DateTimeFieldSettings.Display | DateAndTime |
| Fields[0].DateTimeFieldSettings.Required | true |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
Then I should see "Event.EventDate.Editor.Date"
@@ -119,8 +119,8 @@ Scenario: Creating and using Date fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[EventDate].DateTimeFieldSettings.Display | DateOnly |
| Fields[EventDate].DateTimeFieldSettings.Required | true |
| Fields[0].DateTimeFieldSettings.Display | DateOnly |
| Fields[0].DateTimeFieldSettings.Required | true |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
Then I should see "Event.EventDate.Editor.Date"
@@ -131,8 +131,8 @@ Scenario: Creating and using Date fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[EventDate].DateTimeFieldSettings.Display | TimeOnly |
| Fields[EventDate].DateTimeFieldSettings.Required | true |
| Fields[0].DateTimeFieldSettings.Display | TimeOnly |
| Fields[0].DateTimeFieldSettings.Required | true |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
Then I should see "Event.EventDate.Editor.Date"
@@ -143,9 +143,9 @@ Scenario: Creating and using Date fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[EventDate].DateTimeFieldSettings.Display | DateAndTime |
| Fields[EventDate].DateTimeFieldSettings.Editor.Date | 01/31/2016 |
| Fields[EventDate].DateTimeFieldSettings.Editor.Time | 10:00 AM |
| Fields[0].DateTimeFieldSettings.Display | DateAndTime |
| Fields[0].DateTimeFieldSettings.Editor.Date | 01/31/2016 |
| Fields[0].DateTimeFieldSettings.Editor.Time | 10:00 AM |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
Then I should see "Event.EventDate.Editor.Date"
@@ -190,8 +190,8 @@ Scenario: Creating and using date time fields in another culture
And I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[EventDate].DateTimeFieldSettings.Display | DateAndTime |
| Fields[EventDate].DateTimeFieldSettings.Required | true |
| Fields[0].DateTimeFieldSettings.Display | DateAndTime |
| Fields[0].DateTimeFieldSettings.Required | true |
And I hit "Save"
When I go to "Admin/Contents/Create/Event"
And I fill in

View File

@@ -186,7 +186,7 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table6.AddRow(new string[] {
"Fields[EventDate].DateTimeFieldSettings.Hint",
"Fields[0].DateTimeFieldSettings.Hint",
"Enter the date of the event"});
#line 62
testRunner.And("I fill in", ((string)(null)), table6, "And ");
@@ -203,7 +203,7 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table7.AddRow(new string[] {
"Fields[EventDate].DateTimeFieldSettings.Display",
"Fields[0].DateTimeFieldSettings.Display",
"DateOnly"});
#line 71
testRunner.And("I fill in", ((string)(null)), table7, "And ");
@@ -222,7 +222,7 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table8.AddRow(new string[] {
"Fields[EventDate].DateTimeFieldSettings.Display",
"Fields[0].DateTimeFieldSettings.Display",
"TimeOnly"});
#line 81
testRunner.And("I fill in", ((string)(null)), table8, "And ");
@@ -241,10 +241,10 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table9.AddRow(new string[] {
"Fields[EventDate].DateTimeFieldSettings.Display",
"Fields[0].DateTimeFieldSettings.Display",
"DateAndTime"});
table9.AddRow(new string[] {
"Fields[EventDate].DateTimeFieldSettings.Required",
"Fields[0].DateTimeFieldSettings.Required",
"true"});
#line 91
testRunner.And("I fill in", ((string)(null)), table9, "And ");
@@ -309,10 +309,10 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table13.AddRow(new string[] {
"Fields[EventDate].DateTimeFieldSettings.Display",
"Fields[0].DateTimeFieldSettings.Display",
"DateOnly"});
table13.AddRow(new string[] {
"Fields[EventDate].DateTimeFieldSettings.Required",
"Fields[0].DateTimeFieldSettings.Required",
"true"});
#line 120
testRunner.And("I fill in", ((string)(null)), table13, "And ");
@@ -333,10 +333,10 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table14.AddRow(new string[] {
"Fields[EventDate].DateTimeFieldSettings.Display",
"Fields[0].DateTimeFieldSettings.Display",
"TimeOnly"});
table14.AddRow(new string[] {
"Fields[EventDate].DateTimeFieldSettings.Required",
"Fields[0].DateTimeFieldSettings.Required",
"true"});
#line 132
testRunner.And("I fill in", ((string)(null)), table14, "And ");
@@ -357,13 +357,13 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table15.AddRow(new string[] {
"Fields[EventDate].DateTimeFieldSettings.Display",
"Fields[0].DateTimeFieldSettings.Display",
"DateAndTime"});
table15.AddRow(new string[] {
"Fields[EventDate].DateTimeFieldSettings.Editor.Date",
"Fields[0].DateTimeFieldSettings.Editor.Date",
"01/31/2016"});
table15.AddRow(new string[] {
"Fields[EventDate].DateTimeFieldSettings.Editor.Time",
"Fields[0].DateTimeFieldSettings.Editor.Time",
"10:00 AM"});
#line 144
testRunner.And("I fill in", ((string)(null)), table15, "And ");
@@ -461,10 +461,10 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table18.AddRow(new string[] {
"Fields[EventDate].DateTimeFieldSettings.Display",
"Fields[0].DateTimeFieldSettings.Display",
"DateAndTime"});
table18.AddRow(new string[] {
"Fields[EventDate].DateTimeFieldSettings.Required",
"Fields[0].DateTimeFieldSettings.Required",
"true"});
#line 191
testRunner.And("I fill in", ((string)(null)), table18, "And ");

View File

@@ -35,7 +35,7 @@ Scenario: Creating and using Enumeration fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[Location].EnumerationFieldSettings.Options | Seattle |
| Fields[0].EnumerationFieldSettings.Options | Seattle |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
Then I should see "<option>Seattle</option>"
@@ -57,7 +57,7 @@ Scenario: Creating and using Enumeration fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[Location].EnumerationFieldSettings.Hint | Please select a location |
| Fields[0].EnumerationFieldSettings.Hint | Please select a location |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
Then I should see "Please select a location"
@@ -66,7 +66,7 @@ Scenario: Creating and using Enumeration fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[Location].EnumerationFieldSettings.ListMode | Dropdown |
| Fields[0].EnumerationFieldSettings.ListMode | Dropdown |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
Then I should see "select id=\"Event_Location_Value\" name=\"Event.Location.Value\""
@@ -75,7 +75,7 @@ Scenario: Creating and using Enumeration fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[Location].EnumerationFieldSettings.ListMode | Radiobutton |
| Fields[0].EnumerationFieldSettings.ListMode | Radiobutton |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
Then I should see "input id=\"Event_Location_Value\" name=\"Event.Location.Value\" type=\"radio\""
@@ -84,7 +84,7 @@ Scenario: Creating and using Enumeration fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[Location].EnumerationFieldSettings.ListMode | Listbox |
| Fields[0].EnumerationFieldSettings.ListMode | Listbox |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
Then I should see "select id=\"Event_Location_SelectedValues\" multiple=\"multiple\" name=\"Event.Location.SelectedValues\""
@@ -93,7 +93,7 @@ Scenario: Creating and using Enumeration fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[Location].EnumerationFieldSettings.ListMode | Checkbox |
| Fields[0].EnumerationFieldSettings.ListMode | Checkbox |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
Then I should see "input type=\"checkbox\" name=\"Event.Location.SelectedValues\""
@@ -102,7 +102,7 @@ Scenario: Creating and using Enumeration fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[Location].EnumerationFieldSettings.Required | true |
| Fields[0].EnumerationFieldSettings.Required | true |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
And I hit "Save"
@@ -112,9 +112,9 @@ Scenario: Creating and using Enumeration fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[Location].EnumerationFieldSettings.Options | Seattle |
| Fields[Location].EnumerationFieldSettings.ListMode | Dropdown |
| Fields[Location].EnumerationFieldSettings.DefaultValue | Seattle |
| Fields[0].EnumerationFieldSettings.Options | Seattle |
| Fields[0].EnumerationFieldSettings.ListMode | Dropdown |
| Fields[0].EnumerationFieldSettings.DefaultValue | Seattle |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
Then I should see "selected=\"selected">Seattle"
@@ -123,8 +123,8 @@ Scenario: Creating and using Enumeration fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[Location].EnumerationFieldSettings.Required | true |
| Fields[Location].EnumerationFieldSettings.ListMode | Listbox |
| Fields[0].EnumerationFieldSettings.Required | true |
| Fields[0].EnumerationFieldSettings.ListMode | Listbox |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
Then I should see "required=\"required\""
@@ -133,8 +133,8 @@ Scenario: Creating and using Enumeration fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[Location].EnumerationFieldSettings.Required | false |
| Fields[Location].EnumerationFieldSettings.ListMode | Listbox |
| Fields[0].EnumerationFieldSettings.Required | false |
| Fields[0].EnumerationFieldSettings.ListMode | Listbox |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
Then I should not see "required=\"required\""

View File

@@ -132,7 +132,7 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table3.AddRow(new string[] {
"Fields[Location].EnumerationFieldSettings.Options",
"Fields[0].EnumerationFieldSettings.Options",
"Seattle"});
#line 36
testRunner.And("I fill in", ((string)(null)), table3, "And ");
@@ -174,7 +174,7 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table5.AddRow(new string[] {
"Fields[Location].EnumerationFieldSettings.Hint",
"Fields[0].EnumerationFieldSettings.Hint",
"Please select a location"});
#line 58
testRunner.And("I fill in", ((string)(null)), table5, "And ");
@@ -191,7 +191,7 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table6.AddRow(new string[] {
"Fields[Location].EnumerationFieldSettings.ListMode",
"Fields[0].EnumerationFieldSettings.ListMode",
"Dropdown"});
#line 67
testRunner.And("I fill in", ((string)(null)), table6, "And ");
@@ -208,7 +208,7 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table7.AddRow(new string[] {
"Fields[Location].EnumerationFieldSettings.ListMode",
"Fields[0].EnumerationFieldSettings.ListMode",
"Radiobutton"});
#line 76
testRunner.And("I fill in", ((string)(null)), table7, "And ");
@@ -226,7 +226,7 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table8.AddRow(new string[] {
"Fields[Location].EnumerationFieldSettings.ListMode",
"Fields[0].EnumerationFieldSettings.ListMode",
"Listbox"});
#line 85
testRunner.And("I fill in", ((string)(null)), table8, "And ");
@@ -244,7 +244,7 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table9.AddRow(new string[] {
"Fields[Location].EnumerationFieldSettings.ListMode",
"Fields[0].EnumerationFieldSettings.ListMode",
"Checkbox"});
#line 94
testRunner.And("I fill in", ((string)(null)), table9, "And ");
@@ -261,7 +261,7 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table10.AddRow(new string[] {
"Fields[Location].EnumerationFieldSettings.Required",
"Fields[0].EnumerationFieldSettings.Required",
"true"});
#line 103
testRunner.And("I fill in", ((string)(null)), table10, "And ");
@@ -280,13 +280,13 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table11.AddRow(new string[] {
"Fields[Location].EnumerationFieldSettings.Options",
"Fields[0].EnumerationFieldSettings.Options",
"Seattle"});
table11.AddRow(new string[] {
"Fields[Location].EnumerationFieldSettings.ListMode",
"Fields[0].EnumerationFieldSettings.ListMode",
"Dropdown"});
table11.AddRow(new string[] {
"Fields[Location].EnumerationFieldSettings.DefaultValue",
"Fields[0].EnumerationFieldSettings.DefaultValue",
"Seattle"});
#line 113
testRunner.And("I fill in", ((string)(null)), table11, "And ");
@@ -303,10 +303,10 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table12.AddRow(new string[] {
"Fields[Location].EnumerationFieldSettings.Required",
"Fields[0].EnumerationFieldSettings.Required",
"true"});
table12.AddRow(new string[] {
"Fields[Location].EnumerationFieldSettings.ListMode",
"Fields[0].EnumerationFieldSettings.ListMode",
"Listbox"});
#line 124
testRunner.And("I fill in", ((string)(null)), table12, "And ");
@@ -323,10 +323,10 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table13.AddRow(new string[] {
"Fields[Location].EnumerationFieldSettings.Required",
"Fields[0].EnumerationFieldSettings.Required",
"false"});
table13.AddRow(new string[] {
"Fields[Location].EnumerationFieldSettings.ListMode",
"Fields[0].EnumerationFieldSettings.ListMode",
"Listbox"});
#line 134
testRunner.And("I fill in", ((string)(null)), table13, "And ");

View File

@@ -62,7 +62,7 @@
<Component Type="Orchard.FileSystems.Dependencies.DefaultExtensionDependenciesManager">
<Properties>
<!-- Set Value="true" to disable compiled dependencies files monitoring -->
<!-- Set Value="true" to disable compiled dependencides files monitoring -->
<Property Name="DisableMonitoring" Value="false"/>
</Properties>
</Component>

View File

@@ -1,27 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="webpages:Enabled" value="false" />
<add key="aspnet:RoslynCompilerLocation" value="..\bin\roslyn" />
</appSettings>
<!-- Registering Roslyn as a compiler for Razor IntelliSense. -->
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:latest" />
</compilers>
</system.codedom>
<system.web>
<compilation targetFramework="4.5.2">
<compilation targetFramework="4.5">
<assemblies>
<add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
<add assembly="System.Web.Mvc, Version=5.2.3, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add assembly="System.Web.WebPages, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add assembly="Orchard.Framework" />
<add assembly="Orchard.Core" />
<add assembly="System.Web.Mvc, Version=5.2.3, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"/>
</assemblies>
</compilation>
<pages>
<namespaces>
<add namespace="System.Web.Mvc"/>
<add namespace="System.Web.Mvc.Ajax"/>
<add namespace="System.Web.Mvc.Html"/>
<add namespace="System.Web.Routing"/>
<add namespace="System.Linq"/>
<add namespace="System.Collections.Generic"/>
<add namespace="Orchard.Mvc.Html"/>
</namespaces>
</pages>
</system.web>
<system.web.extensions/>
</configuration>

View File

@@ -1,15 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="webpages:Enabled" value="false" />
<add key="aspnet:RoslynCompilerLocation" value="..\bin\roslyn" />
</appSettings>
<!-- Registering Roslyn as a compiler for Razor IntelliSense. -->
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:latest" />
</compilers>
</system.codedom>
<system.web>
<!--
Enabling request validation in view pages would cause validation to occur
@@ -23,17 +13,5 @@
<add assembly="System.Web.Mvc, Version=5.2.3, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" namespace="System.Web.Mvc" tagPrefix="mvc" />
</controls>
</pages>
<compilation targetFramework="4.5.2">
<assemblies>
<add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
<add assembly="System.Web.Mvc, Version=5.2.3, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add assembly="System.Web.WebPages, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add assembly="Orchard.Framework" />
<add assembly="Orchard.Core" />
</assemblies>
</compilation>
</system.web>
</configuration>

View File

@@ -1,17 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<?xml version="1.0"?>
<!--
Note: As an alternative to hand editing this file you can use the
web admin tool to configure settings for your application. Use
the Website->Asp.Net Configuration option in Visual Studio.
A full list of settings and comments can be found in
machine.config.comments usually located in
\Windows\Microsoft.Net\Framework\v2.x\Config
-->
<configuration>
<configSections>
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" requirePermission="false" />
</configSections>
<appSettings>
<add key="webpages:Enabled" value="false" />
<add key="webpages:Version" value="3.0.0"/>
<add key="log4net.Config" value="Config\log4net.config" />
<add key="webpages:Version" value="3.0.3" />
<add key="owin:AutomaticAppStartup" value="false" />
</appSettings>
@@ -19,29 +30,26 @@
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<pages pageBaseType="Orchard.Mvc.ViewEngines.Razor.WebViewPage">
<namespaces>
<add namespace="System.Collections.Generic" />
<add namespace="System.Linq" />
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="System.Web.WebPages" />
<add namespace="Orchard.Mvc.Html" />
<add namespace="System.Linq"/>
<add namespace="System.Collections.Generic"/>
<add namespace="Orchard.Mvc.Html"/>
</namespaces>
</pages>
</system.web.webPages.razor>
<!--
Set default transaction timeout to 30 minutes so that interactive debugging
is easier (default timeout is less than one minute)
-->
<system.transactions>
<defaultSettings timeout="00:30:00" />
<defaultSettings timeout="00:30:00"/>
</system.transactions>
<!-- Registering Roslyn as a compiler for Dynamic Compilation. -->
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:latest" />
</compilers>
</system.codedom>
<system.web>
<httpRuntime targetFramework="4.5.2" requestValidationMode="2.0" />
<!--
@@ -52,65 +60,76 @@
-->
<compilation debug="false" targetFramework="4.5.2" batch="true" numRecompilesBeforeAppRestart="250" optimizeCompilations="true">
<buildProviders>
<add extension=".csproj" type="Orchard.Environment.Extensions.Compilers.CSharpExtensionBuildProviderShim" />
<add extension=".csproj" type="Orchard.Environment.Extensions.Compilers.CSharpExtensionBuildProviderShim"/>
</buildProviders>
<assemblies>
<add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
<add assembly="System.Web.Mvc, Version=5.2.3, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />
<add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
<add assembly="System.Web.Mvc, Version=5.2.3, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"/>
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"/>
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"/>
<add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add assembly="System.Data.Entity.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add assembly="Microsoft.Owin.Host.SystemWeb, Version=3.0.0.0" />
<add assembly="System.Data.Services.Client, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add assembly="System.Numerics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add assembly="System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add assembly="System.Web.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
<remove assembly="System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<remove assembly="System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<remove assembly="System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<remove assembly="System.Web.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<remove assembly="System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<remove assembly="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<remove assembly="System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<remove assembly="System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<remove assembly="System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<remove assembly="System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<remove assembly="System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<remove assembly="System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<remove assembly="System.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<remove assembly="System.ServiceModel.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<remove assembly="System.WorkflowServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<remove assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<remove assembly="System.Web.ApplicationServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<remove assembly="System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
<remove assembly="System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
<remove assembly="System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<remove assembly="System.Web.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
<remove assembly="System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<remove assembly="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
<remove assembly="System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
<remove assembly="System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<remove assembly="System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<remove assembly="System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<remove assembly="System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<remove assembly="System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<remove assembly="System.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<remove assembly="System.ServiceModel.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<remove assembly="System.WorkflowServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<remove assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<remove assembly="System.Data.DataSetExtensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<remove assembly="System.Web.ApplicationServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</assemblies>
</compilation>
<!--
The <authentication> section enables configuration
of the security authentication mode used by
ASP.NET to identify an incoming user.
-->
<authentication mode="Forms">
<forms loginUrl="~/Users/Account/AccessDenied" timeout="2880" />
<forms loginUrl="~/Users/Account/AccessDenied" timeout="2880"/>
</authentication>
<!--
The <customErrors> section enables configuration
of what to do if/when an unhandled error occurs
during the execution of a request. Specifically,
it enables developers to configure html error pages
to be displayed in place of a error stack trace.
-->
<customErrors mode="RemoteOnly" />
<pages>
<namespaces>
<add namespace="System.Collections.Generic" />
<add namespace="System.Linq" />
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="System.Web.WebPages" />
<add namespace="Orchard.Mvc.Html" />
<add namespace="System.Web.Mvc"/>
<add namespace="System.Web.Mvc.Ajax"/>
<add namespace="System.Web.Mvc.Html"/>
<add namespace="System.Web.Routing"/>
<add namespace="System.Linq"/>
<add namespace="System.Collections.Generic"/>
<add namespace="Orchard.Mvc.Html"/>
</namespaces>
</pages>
</system.web>
<!--
The system.webServer section is required for running ASP.NET AJAX under Internet
Information Services 7.0. It is not necessary for previous version of IIS.
-->
<system.webServer>
<!-- prevent iis from only allowing integrated mode configuration -->
<validation validateIntegratedModeConfiguration="false" />
<modules runAllManagedModulesForAllRequests="false">
<remove name="OutputCache" />
<remove name="WarmupHttpModule" />
<add name="WarmupHttpModule" type="Orchard.WarmupStarter.WarmupHttpModule, Orchard.WarmupStarter, Version=1.10, Culture=neutral" />
<add name="WarmupHttpModule" type="Orchard.WarmupStarter.WarmupHttpModule, Orchard.WarmupStarter, Version=1.8.1, Culture=neutral"/>
</modules>
<handlers accessPolicy="Script">
<!-- clear all handlers, prevents executing code file extensions, prevents returning any file contents -->
@@ -125,113 +144,89 @@
<add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
<!-- Prevent IIS 7.0 from returning a custom 404/500 error page of its own. -->
<!-- Prevent IIS 7.0 from returning a custom 404/500 error page of its own -->
<httpErrors existingResponse="PassThrough" />
<security>
<requestFiltering>
<!-- Accept file uploads up to 64 MB. -->
<requestLimits maxAllowedContentLength="67108864" />
</requestFiltering>
</security>
<staticContent>
<remove fileExtension=".mp3" />
<mimeMap fileExtension=".mp3" mimeType="audio/mpeg" />
<remove fileExtension=".mp4" />
<mimeMap fileExtension=".mp4" mimeType="video/mp4" />
<remove fileExtension=".pdf" />
<mimeMap fileExtension=".pdf" mimeType="application/pdf" />
<remove fileExtension=".svg" />
<mimeMap fileExtension=".svg" mimeType="image/svg+xml" />
<remove fileExtension=".woff" />
<mimeMap fileExtension=".woff" mimeType="application/font-woff" />
<remove fileExtension=".woff2" />
<mimeMap fileExtension=".woff2" mimeType="font/woff2" />
</staticContent>
</system.webServer>
<runtime>
<gcServer enabled="true" />
<gcServer enabled="true"/>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="App_Data/Dependencies" />
<probing privatePath="App_Data/Dependencies"/>
<dependentAssembly>
<!-- 1.0.1.0 by NHibernate.Linq, Version=0.0.0.0 -->
<assemblyIdentity name="Iesi.Collections" publicKeyToken="AA95F207798DFDB4" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
<assemblyIdentity name="Iesi.Collections" publicKeyToken="AA95F207798DFDB4" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Razor" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
<assemblyIdentity name="System.Web.Razor" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages.Deployment" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
<assemblyIdentity name="System.Web.WebPages.Deployment" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages.Razor" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
<assemblyIdentity name="System.Web.WebPages.Razor" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
<assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0"/>
</dependentAssembly>
<dependentAssembly>
<!-- 3.3.1.4000 by NHibernate.Linq, Version=0.0.0.0 -->
<assemblyIdentity name="NHibernate" publicKeyToken="aa95f207798dfdb4" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.4000" newVersion="4.0.0.4000" />
<assemblyIdentity name="NHibernate" publicKeyToken="aa95f207798dfdb4" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-4.0.0.4000" newVersion="4.0.0.4000"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Autofac" publicKeyToken="17863af14b0044da" />
<bindingRedirect oldVersion="0.0.0.0-3.5.0.0" newVersion="3.5.0.0" />
<assemblyIdentity name="Autofac" publicKeyToken="17863af14b0044da"/>
<bindingRedirect oldVersion="0.0.0.0-3.5.0.0" newVersion="3.5.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.WindowsAzure.Storage" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.0.2.0" newVersion="5.0.2.0" />
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30AD4FE6B2A6AEED" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Data.Edm" publicKeyToken="31BF3856AD364E35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.8.4.0" newVersion="5.8.4.0" />
<assemblyIdentity name="Microsoft.WindowsAzure.Storage" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-5.0.2.0" newVersion="5.0.2.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Data.OData" publicKeyToken="31BF3856AD364E35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.8.4.0" newVersion="5.8.4.0" />
<assemblyIdentity name="Microsoft.Data.Edm" publicKeyToken="31BF3856AD364E35" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-5.6.4.0" newVersion="5.6.4.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Data.Services.Client" publicKeyToken="31BF3856AD364E35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.8.4.0" newVersion="5.8.4.0" />
<assemblyIdentity name="Microsoft.Data.OData" publicKeyToken="31BF3856AD364E35" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-5.6.4.0" newVersion="5.6.4.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Data.Services.Client" publicKeyToken="31BF3856AD364E35" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-5.6.4.0" newVersion="5.6.4.0"/>
</dependentAssembly>
<dependentAssembly>
<!-- 2.0.0.0 by System.Data.SqlServerCe, Version=4.0.0.0 -->
<assemblyIdentity name="System.Transactions" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
<assemblyIdentity name="System.Transactions" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<!-- 2.0.0.0 by System.Data.SqlServerCe, Version=4.0.0.0 -->
<assemblyIdentity name="System.Data" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Iesi.Collections" publicKeyToken="aa95f207798dfdb4" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" />
<assemblyIdentity name="System.Data" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>

View File

@@ -174,16 +174,16 @@ machine.config.comments usually located in
<bindingRedirect oldVersion="0.0.0.0-5.0.2.0" newVersion="5.0.2.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Data.Edm" publicKeyToken="31BF3856AD364E35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.8.4.0" newVersion="5.8.4.0" />
<assemblyIdentity name="Microsoft.Data.Edm" publicKeyToken="31BF3856AD364E35" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-5.6.3.0" newVersion="5.6.3.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Data.OData" publicKeyToken="31BF3856AD364E35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.8.4.0" newVersion="5.8.4.0" />
<assemblyIdentity name="Microsoft.Data.OData" publicKeyToken="31BF3856AD364E35" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-5.6.3.0" newVersion="5.6.3.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Data.Services.Client" publicKeyToken="31BF3856AD364E35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.8.4.0" newVersion="5.8.4.0" />
<assemblyIdentity name="Microsoft.Data.Services.Client" publicKeyToken="31BF3856AD364E35" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-5.6.3.0" newVersion="5.6.3.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>

View File

@@ -41,6 +41,7 @@
<Properties>
<!-- Set Value="true" to disable source files monitoring -->
<Property Name="DisableMonitoring" Value="false"/>
<!-- Set Value="true" to completely disable the Dynamic Extension Loader -->
<Property Name="Disabled" Value="true"/>
</Properties>
@@ -62,7 +63,7 @@
<Component Type="Orchard.FileSystems.Dependencies.DefaultExtensionDependenciesManager">
<Properties>
<!-- Set Value="true" to disable compiled dependencies files monitoring -->
<!-- Set Value="true" to disable compiled dependencides files monitoring -->
<Property Name="DisableMonitoring" Value="false"/>
</Properties>
</Component>
@@ -95,38 +96,6 @@
</Properties>
</Component>
<Component Type="Orchard.Services.ClientHostAddressAccessor">
<Properties>
<!-- Set Value="true" to read the client host address from the specified HTTP header. -->
<Property Name="EnableClientHostAddressHeader" Value="false"/>
<!-- Set Value to the HTTP header name from which to read the client host address. Only used when EnableClientHostAddressHeader="true".
If the specified header was not found, the system will fall back to the client host address as provided by the Request object.-->
<Property Name="ClientHostAddressHeaderName" Value="X-Forwarded-For"/>
</Properties>
</Component>
<Component Type="Orchard.Setup.Controllers.SetupController">
<Properties>
<!-- Sets the request timeout to a configurable amount of seconds to give enough time to execute setup recipes. -->
<Property Name="RecipeExecutionTimeout" Value="600"/>
</Properties>
</Component>
<Component Type="Orchard.ImportExport.Providers.ImportActions.ExecuteRecipeAction">
<Properties>
<!-- Sets the request timeout to a configurable amount of seconds to give enough time to execute imported recipes. -->
<Property Name="RecipeExecutionTimeout" Value="600"/>
</Properties>
</Component>
<Component Type="Orchard.Environment.DefaultOrchardHost">
<Properties>
<!-- The number of retries when a tenant can't be loaded -->
<Property Name="Retries" Value="1"/>
<Property Name="DelayRetries" Value="true"/>
</Properties>
</Component>
</Components>
</HostComponents>

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8" ?>
<?xml version="1.0" encoding="utf-8" ?>
<HostComponents>
<Components>
@@ -44,20 +44,18 @@
<!-- Set Value="true" to completely disable the Dynamic Extension Loader -->
<Property Name="Disabled" Value="false"/>
</Properties>
</Component>
</Component>
<Component Type="Orchard.Environment.Extensions.Loaders.PrecompiledExtensionLoader">
<Properties>
<!-- Set Value="true" to disable pre-compiled files monitoring (~/Modules/**/bin/*.dll) -->
<Property Name="DisableMonitoring" Value="false"/>
<!-- Set Value="true" to completely disable the Precompiled Extension Loader -->
<Property Name="Disabled" Value="true"/>
</Properties>
</Component>
<Component Type="Orchard.Environment.Extensions.Loaders.ReferencedExtensionLoader">
<Properties>
<!-- Set Value="true" to completely disable the Referenced Extension Loader -->
<Property Name="Disabled" Value="true"/>
</Properties>
</Component>
@@ -71,7 +69,7 @@
<Component Type="Orchard.FileSystems.Dependencies.DefaultExtensionDependenciesManager">
<Properties>
<!-- Set Value="true" to disable compiled dependencies files monitoring -->
<!-- Set Value="true" to disable compiled dependencides files monitoring -->
<Property Name="DisableMonitoring" Value="false"/>
</Properties>
</Component>
@@ -104,38 +102,6 @@
</Properties>
</Component>
<Component Type="Orchard.Services.ClientHostAddressAccessor">
<Properties>
<!-- Set Value="true" to read the client host address from the specified HTTP header. -->
<Property Name="EnableClientHostAddressHeader" Value="false"/>
<!-- Set Value to the HTTP header name from which to read the client host address. Only used when EnableClientHostAddressHeader="true".
If the specified header was not found, the system will fall back to the client host address as provided by the Request object.-->
<Property Name="ClientHostAddressHeaderName" Value="X-Forwarded-For"/>
</Properties>
</Component>
<Component Type="Orchard.Setup.Controllers.SetupController">
<Properties>
<!-- Sets the request timeout to a configurable amount of seconds to give enough time to execute setup recipes. -->
<Property Name="RecipeExecutionTimeout" Value="600"/>
</Properties>
</Component>
<Component Type="Orchard.ImportExport.Providers.ImportActions.ExecuteRecipeAction">
<Properties>
<!-- Sets the request timeout to a configurable amount of seconds to give enough time to execute imported recipes. -->
<Property Name="RecipeExecutionTimeout" Value="600"/>
</Properties>
</Component>
<Component Type="Orchard.Environment.DefaultOrchardHost">
<Properties>
<!-- The number of retries when a tenant can't be loaded -->
<Property Name="Retries" Value="1"/>
<Property Name="DelayRetries" Value="true"/>
</Properties>
</Component>
</Components>
</HostComponents>

View File

@@ -96,11 +96,11 @@ namespace Orchard.Specs.Hosting {
.DeepCopy("*.*", _tempSite.Combine("bin").Combine("amd64"));
}
Log("Copy Roslyn binaries");
if (_orchardWebPath.Combine("bin").Combine("roslyn").IsDirectory) {
_orchardWebPath.Combine("bin").Combine("roslyn")
.DeepCopy("*.*", _tempSite.Combine("bin").Combine("roslyn"));
}
//Log("Copy roslyn binaries");
//if (_orchardWebPath.Combine("bin").Combine("roslyn").IsDirectory) {
// _orchardWebPath.Combine("bin").Combine("roslyn")
// .DeepCopy("*.*", _tempSite.Combine("bin").Combine("roslyn"));
//}
// Copy binaries of this project, so that remote execution of lambda
// can be achieved through serialization to the ASP.NET appdomain

View File

@@ -35,7 +35,7 @@ Scenario: Creating and using Input fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[Contact].InputFieldSettings.Hint | Enter the contact email address |
| Fields[0].InputFieldSettings.Hint | Enter the contact email address |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
Then I should see "Enter the contact email address"
@@ -44,7 +44,7 @@ Scenario: Creating and using Input fields
#When I go to "Admin/ContentTypes/Edit/Event"
# And I fill in
# | name | value |
# | Fields[Contact].InputFieldSettings.Pattern | [^@]*@[^@]* |
# | Fields[0].InputFieldSettings.Pattern | [^@]*@[^@]* |
# And I hit "Save"
# And I go to "Admin/Contents/Create/Event"
#Then I should see "pattern=\"[^@]*@[^@]*\""
@@ -53,7 +53,7 @@ Scenario: Creating and using Input fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[Contact].InputFieldSettings.Type | Email |
| Fields[0].InputFieldSettings.Type | Email |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
Then I should see "type=\"email\""
@@ -62,7 +62,7 @@ Scenario: Creating and using Input fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[Contact].InputFieldSettings.Title | Enter an email address |
| Fields[0].InputFieldSettings.Title | Enter an email address |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
Then I should see "title=\"Enter an email address\""
@@ -71,7 +71,7 @@ Scenario: Creating and using Input fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[Contact].InputFieldSettings.AutoFocus | true |
| Fields[0].InputFieldSettings.AutoFocus | true |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
Then I should see "autofocus=\"autofocus\""
@@ -80,7 +80,7 @@ Scenario: Creating and using Input fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[Contact].InputFieldSettings.AutoComplete | true |
| Fields[0].InputFieldSettings.AutoComplete | true |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
Then I should see "autocomplete=\"on\""
@@ -89,7 +89,7 @@ Scenario: Creating and using Input fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[Contact].InputFieldSettings.Placeholder | email@domain.com |
| Fields[0].InputFieldSettings.Placeholder | email@domain.com |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
Then I should see "placeholder=\"email@domain.com\""
@@ -98,7 +98,7 @@ Scenario: Creating and using Input fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[Contact].InputFieldSettings.MaxLength | 100 |
| Fields[0].InputFieldSettings.MaxLength | 100 |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
Then I should see "maxlength=\"100\""
@@ -107,7 +107,7 @@ Scenario: Creating and using Input fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[Contact].InputFieldSettings.Required | true |
| Fields[0].InputFieldSettings.Required | true |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
And I fill in
@@ -133,7 +133,7 @@ Scenario: Creating and using Input fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[Contact].InputFieldSettings.DefaultValue | contact@orchardproject.net |
| Fields[0].InputFieldSettings.DefaultValue | contact@orchardproject.net |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
Then I should see "value=\"contact@orchardproject.net\""
@@ -142,7 +142,7 @@ Scenario: Creating and using Input fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[Contact].InputFieldSettings.Required | true |
| Fields[0].InputFieldSettings.Required | true |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
Then I should see "required=\"required\""
@@ -151,7 +151,7 @@ Scenario: Creating and using Input fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[Contact].InputFieldSettings.Required | false |
| Fields[0].InputFieldSettings.Required | false |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
Then I should not see "required=\"required\""

View File

@@ -132,7 +132,7 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table3.AddRow(new string[] {
"Fields[Contact].InputFieldSettings.Hint",
"Fields[0].InputFieldSettings.Hint",
"Enter the contact email address"});
#line 36
testRunner.And("I fill in", ((string)(null)), table3, "And ");
@@ -149,7 +149,7 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table4.AddRow(new string[] {
"Fields[Contact].InputFieldSettings.Type",
"Fields[0].InputFieldSettings.Type",
"Email"});
#line 54
testRunner.And("I fill in", ((string)(null)), table4, "And ");
@@ -166,7 +166,7 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table5.AddRow(new string[] {
"Fields[Contact].InputFieldSettings.Title",
"Fields[0].InputFieldSettings.Title",
"Enter an email address"});
#line 63
testRunner.And("I fill in", ((string)(null)), table5, "And ");
@@ -183,7 +183,7 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table6.AddRow(new string[] {
"Fields[Contact].InputFieldSettings.AutoFocus",
"Fields[0].InputFieldSettings.AutoFocus",
"true"});
#line 72
testRunner.And("I fill in", ((string)(null)), table6, "And ");
@@ -200,7 +200,7 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table7.AddRow(new string[] {
"Fields[Contact].InputFieldSettings.AutoComplete",
"Fields[0].InputFieldSettings.AutoComplete",
"true"});
#line 81
testRunner.And("I fill in", ((string)(null)), table7, "And ");
@@ -217,7 +217,7 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table8.AddRow(new string[] {
"Fields[Contact].InputFieldSettings.Placeholder",
"Fields[0].InputFieldSettings.Placeholder",
"email@domain.com"});
#line 90
testRunner.And("I fill in", ((string)(null)), table8, "And ");
@@ -234,7 +234,7 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table9.AddRow(new string[] {
"Fields[Contact].InputFieldSettings.MaxLength",
"Fields[0].InputFieldSettings.MaxLength",
"100"});
#line 99
testRunner.And("I fill in", ((string)(null)), table9, "And ");
@@ -251,7 +251,7 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table10.AddRow(new string[] {
"Fields[Contact].InputFieldSettings.Required",
"Fields[0].InputFieldSettings.Required",
"true"});
#line 108
testRunner.And("I fill in", ((string)(null)), table10, "And ");
@@ -304,7 +304,7 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table13.AddRow(new string[] {
"Fields[Contact].InputFieldSettings.DefaultValue",
"Fields[0].InputFieldSettings.DefaultValue",
"contact@orchardproject.net"});
#line 134
testRunner.And("I fill in", ((string)(null)), table13, "And ");
@@ -321,7 +321,7 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table14.AddRow(new string[] {
"Fields[Contact].InputFieldSettings.Required",
"Fields[0].InputFieldSettings.Required",
"true"});
#line 143
testRunner.And("I fill in", ((string)(null)), table14, "And ");
@@ -338,7 +338,7 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table15.AddRow(new string[] {
"Fields[Contact].InputFieldSettings.Required",
"Fields[0].InputFieldSettings.Required",
"false"});
#line 152
testRunner.And("I fill in", ((string)(null)), table15, "And ");

View File

@@ -51,7 +51,7 @@ Scenario: Creating and using Link fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[SiteUrl].LinkFieldSettings.Hint | Enter the url of the web site |
| Fields[0].LinkFieldSettings.Hint | Enter the url of the web site |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
Then I should see "Enter the url of the web site"
@@ -60,7 +60,7 @@ Scenario: Creating and using Link fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[SiteUrl].LinkFieldSettings.Required | true |
| Fields[0].LinkFieldSettings.Required | true |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
And I fill in
@@ -73,7 +73,7 @@ Scenario: Creating and using Link fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[SiteUrl].LinkFieldSettings.DefaultValue | http://www.orchardproject.net |
| Fields[0].LinkFieldSettings.DefaultValue | http://www.orchardproject.net |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
Then I should see "value=\"http://www.orchardproject.net\""
@@ -82,7 +82,7 @@ Scenario: Creating and using Link fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[SiteUrl].LinkFieldSettings.Required | true |
| Fields[0].LinkFieldSettings.Required | true |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
Then I should see "required=\"required\""
@@ -91,7 +91,7 @@ Scenario: Creating and using Link fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[SiteUrl].LinkFieldSettings.Required | false |
| Fields[0].LinkFieldSettings.Required | false |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
Then I should not see "required=\"required\""

View File

@@ -166,7 +166,7 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table5.AddRow(new string[] {
"Fields[SiteUrl].LinkFieldSettings.Hint",
"Fields[0].LinkFieldSettings.Hint",
"Enter the url of the web site"});
#line 52
testRunner.And("I fill in", ((string)(null)), table5, "And ");
@@ -183,7 +183,7 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table6.AddRow(new string[] {
"Fields[SiteUrl].LinkFieldSettings.Required",
"Fields[0].LinkFieldSettings.Required",
"true"});
#line 61
testRunner.And("I fill in", ((string)(null)), table6, "And ");
@@ -211,7 +211,7 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table8.AddRow(new string[] {
"Fields[SiteUrl].LinkFieldSettings.DefaultValue",
"Fields[0].LinkFieldSettings.DefaultValue",
"http://www.orchardproject.net"});
#line 74
testRunner.And("I fill in", ((string)(null)), table8, "And ");
@@ -228,7 +228,7 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table9.AddRow(new string[] {
"Fields[SiteUrl].LinkFieldSettings.Required",
"Fields[0].LinkFieldSettings.Required",
"true"});
#line 83
testRunner.And("I fill in", ((string)(null)), table9, "And ");
@@ -245,7 +245,7 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table10.AddRow(new string[] {
"Fields[SiteUrl].LinkFieldSettings.Required",
"Fields[0].LinkFieldSettings.Required",
"false"});
#line 92
testRunner.And("I fill in", ((string)(null)), table10, "And ");

View File

@@ -47,7 +47,7 @@ Scenario: Creating and using media fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[File].MediaPickerFieldSettings.Hint | Please select a file |
| Fields[0].MediaPickerFieldSettings.Hint | Please select a file |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
Then I should see "Please select a file"
@@ -56,7 +56,7 @@ Scenario: Creating and using media fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[File].MediaPickerFieldSettings.Required | true |
| Fields[0].MediaPickerFieldSettings.Required | true |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
And I fill in
@@ -69,8 +69,8 @@ Scenario: Creating and using media fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| ext-Fields[File].MediaPickerFieldSettings | true |
| Fields[File].MediaPickerFieldSettings.AllowedExtensions | jpg |
| ext-Fields[0].MediaPickerFieldSettings | true |
| Fields[0].MediaPickerFieldSettings.AllowedExtensions | jpg |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
And I fill in

View File

@@ -153,7 +153,7 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table4.AddRow(new string[] {
"Fields[File].MediaPickerFieldSettings.Hint",
"Fields[0].MediaPickerFieldSettings.Hint",
"Please select a file"});
#line 48
testRunner.And("I fill in", ((string)(null)), table4, "And ");
@@ -170,7 +170,7 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table5.AddRow(new string[] {
"Fields[File].MediaPickerFieldSettings.Required",
"Fields[0].MediaPickerFieldSettings.Required",
"true"});
#line 57
testRunner.And("I fill in", ((string)(null)), table5, "And ");
@@ -198,10 +198,10 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table7.AddRow(new string[] {
"ext-Fields[File].MediaPickerFieldSettings",
"ext-Fields[0].MediaPickerFieldSettings",
"true"});
table7.AddRow(new string[] {
"Fields[File].MediaPickerFieldSettings.AllowedExtensions",
"Fields[0].MediaPickerFieldSettings.AllowedExtensions",
"jpg"});
#line 70
testRunner.And("I fill in", ((string)(null)), table7, "And ");

View File

@@ -48,7 +48,7 @@ Scenario: Creating and using numeric fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[Guests].NumericFieldSettings.Hint | Please enter a number |
| Fields[0].NumericFieldSettings.Hint | Please enter a number |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
Then I should see "Please enter a number"
@@ -57,7 +57,7 @@ Scenario: Creating and using numeric fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[Guests].NumericFieldSettings.Required | true |
| Fields[0].NumericFieldSettings.Required | true |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
And I fill in
@@ -70,8 +70,8 @@ Scenario: Creating and using numeric fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[Guests].NumericFieldSettings.Minimum | -10 |
| Fields[Guests].NumericFieldSettings.Maximum | 100 |
| Fields[0].NumericFieldSettings.Minimum | -10 |
| Fields[0].NumericFieldSettings.Maximum | 100 |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
Then I should see "min=\"-10\""
@@ -92,8 +92,8 @@ Scenario: Creating and using numeric fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[Guests].NumericFieldSettings.Minimum | a |
| Fields[Guests].NumericFieldSettings.Maximum | b |
| Fields[0].NumericFieldSettings.Minimum | a |
| Fields[0].NumericFieldSettings.Maximum | b |
And I hit "Save"
Then I should see "The value &#39;a&#39; is not valid for Minimum."
And I should see "The value &#39;b&#39; is not valid for Maximum."
@@ -110,7 +110,7 @@ Scenario: Creating and using numeric fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[Guests].NumericFieldSettings.DefaultValue | 1234 |
| Fields[0].NumericFieldSettings.DefaultValue | 1234 |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
Then I should see "value=\"1234\""
@@ -119,7 +119,7 @@ Scenario: Creating and using numeric fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[Guests].NumericFieldSettings.Required | true |
| Fields[0].NumericFieldSettings.Required | true |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
Then I should see "required=\"required\""
@@ -128,7 +128,7 @@ Scenario: Creating and using numeric fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[Guests].NumericFieldSettings.Required | false |
| Fields[0].NumericFieldSettings.Required | false |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
Then I should not see "required=\"required\""

View File

@@ -157,7 +157,7 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table4.AddRow(new string[] {
"Fields[Guests].NumericFieldSettings.Hint",
"Fields[0].NumericFieldSettings.Hint",
"Please enter a number"});
#line 49
testRunner.And("I fill in", ((string)(null)), table4, "And ");
@@ -174,7 +174,7 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table5.AddRow(new string[] {
"Fields[Guests].NumericFieldSettings.Required",
"Fields[0].NumericFieldSettings.Required",
"true"});
#line 58
testRunner.And("I fill in", ((string)(null)), table5, "And ");
@@ -202,10 +202,10 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table7.AddRow(new string[] {
"Fields[Guests].NumericFieldSettings.Minimum",
"Fields[0].NumericFieldSettings.Minimum",
"-10"});
table7.AddRow(new string[] {
"Fields[Guests].NumericFieldSettings.Maximum",
"Fields[0].NumericFieldSettings.Maximum",
"100"});
#line 71
testRunner.And("I fill in", ((string)(null)), table7, "And ");
@@ -252,10 +252,10 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table10.AddRow(new string[] {
"Fields[Guests].NumericFieldSettings.Minimum",
"Fields[0].NumericFieldSettings.Minimum",
"a"});
table10.AddRow(new string[] {
"Fields[Guests].NumericFieldSettings.Maximum",
"Fields[0].NumericFieldSettings.Maximum",
"b"});
#line 93
testRunner.And("I fill in", ((string)(null)), table10, "And ");
@@ -287,7 +287,7 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table12.AddRow(new string[] {
"Fields[Guests].NumericFieldSettings.DefaultValue",
"Fields[0].NumericFieldSettings.DefaultValue",
"1234"});
#line 111
testRunner.And("I fill in", ((string)(null)), table12, "And ");
@@ -304,7 +304,7 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table13.AddRow(new string[] {
"Fields[Guests].NumericFieldSettings.Required",
"Fields[0].NumericFieldSettings.Required",
"true"});
#line 120
testRunner.And("I fill in", ((string)(null)), table13, "And ");
@@ -321,7 +321,7 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table14.AddRow(new string[] {
"Fields[Guests].NumericFieldSettings.Required",
"Fields[0].NumericFieldSettings.Required",
"false"});
#line 129
testRunner.And("I fill in", ((string)(null)), table14, "And ");

View File

@@ -41,7 +41,6 @@
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<LangVersion>latest</LangVersion>
<CodeAnalysisRuleSet>..\OrchardBasicCorrectness.ruleset</CodeAnalysisRuleSet>
<PlatformTarget>AnyCPU</PlatformTarget>
<Prefer32Bit>false</Prefer32Bit>
@@ -53,7 +52,6 @@
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<LangVersion>latest</LangVersion>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<PlatformTarget>AnyCPU</PlatformTarget>
<Prefer32Bit>false</Prefer32Bit>
@@ -483,6 +481,10 @@
<Project>{8C7FCBC2-E6E1-405E-BFB5-D8D9E67A09C4}</Project>
<Name>Orchard.Setup</Name>
</ProjectReference>
<ProjectReference Include="..\Orchard.Web\Modules\Orchard.Users\Orchard.Users.csproj">
<Project>{79AED36E-ABD0-4747-93D3-8722B042454B}</Project>
<Name>Orchard.Users</Name>
</ProjectReference>
<ProjectReference Include="..\Orchard.Web\Orchard.Web.csproj">
<Project>{50B779EA-EC00-4699-84C0-03B395C365D2}</Project>
<Name>Orchard.Web</Name>

View File

@@ -30,5 +30,5 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
[assembly: AssemblyVersion("1.10.3")]
[assembly: AssemblyFileVersion("1.10.3")]
[assembly: AssemblyVersion("1.10.1")]
[assembly: AssemblyFileVersion("1.10.1")]

View File

@@ -1,29 +1,50 @@
Feature: Setup
In order to install orchard
As a new user
I want to access the Setup screen from the default screen and the Setup folder, then the Setup should be successful if required fields are filled in
Scenario: RootAndSetupFolderShowsSetupScreenAndFormValuesAreValidated
Given I have a clean site with standard extensions
I want to setup a new site from the default screen
Scenario: Root request shows setup form
Given I have a clean site with
| extension | names |
| Module | Orchard.Setup, Orchard.Layouts, Orchard.Pages, Orchard.ContentPicker, Orchard.Blogs, Orchard.MediaLibrary, Orchard.Modules, Orchard.Packaging, Orchard.PublishLater, Orchard.Themes, Orchard.Scripting, Orchard.Widgets, Orchard.Users, Orchard.ContentTypes, Orchard.Roles, Orchard.Comments, Orchard.Resources, Orchard.Tags, TinyMce, Orchard.Recipes, Orchard.Warmup, Orchard.Alias, Orchard.Forms, Orchard.Tokens, Orchard.Autoroute, Orchard.Projections, Orchard.Fields, Orchard.MediaProcessing, Orchard.OutputCache, Orchard.Taxonomies, Orchard.Workflows, Orchard.Scripting.CSharp, Orchard.Conditions |
| Core | Common, Containers, Dashboard, Feeds, Navigation, Contents, Scheduling, Settings, Shapes, XmlRpc, Title |
| Theme | SafeMode |
When I go to "/"
Then I should see "Welcome to Orchard"
And I should see "Finish Setup"
And the status should be 200 "OK"
Scenario: Setup folder also shows setup form
Given I have a clean site with
| extension | names |
| Module | Orchard.Setup, Orchard.Layouts, Orchard.Pages, Orchard.ContentPicker, Orchard.Blogs, Orchard.MediaLibrary, Orchard.Modules, Orchard.Packaging, Orchard.PublishLater, Orchard.Themes, Orchard.Scripting, Orchard.Widgets, Orchard.Users, Orchard.ContentTypes, Orchard.Roles, Orchard.Comments, Orchard.Resources, Orchard.Tags, TinyMce, Orchard.Recipes, Orchard.Warmup, Orchard.Alias, Orchard.Forms, Orchard.Tokens, Orchard.Autoroute, Orchard.Projections, Orchard.Fields, Orchard.MediaProcessing, Orchard.OutputCache, Orchard.Taxonomies, Orchard.Workflows, Orchard.Scripting.CSharp, Orchard.Conditions |
| Core | Common, Containers, Dashboard, Feeds, Navigation, Contents, Scheduling, Settings, Shapes, XmlRpc, Title |
| Theme | SafeMode |
When I go to "/Setup"
Then I should see "Welcome to Orchard"
And I should see "Finish Setup"
And the status should be 200 "OK"
Scenario: Some of the initial form values are required
Given I have a clean site with
| extension | names |
| Module | Orchard.Setup, Orchard.Layouts, Orchard.Pages, Orchard.ContentPicker, Orchard.Blogs, Orchard.MediaLibrary, Orchard.Modules, Orchard.Packaging, Orchard.PublishLater, Orchard.Themes, Orchard.Scripting, Orchard.Widgets, Orchard.Users, Orchard.ContentTypes, Orchard.Roles, Orchard.Comments, Orchard.Resources, Orchard.Tags, TinyMce, Orchard.Recipes, Orchard.Warmup, Orchard.Alias, Orchard.Forms, Orchard.Tokens, Orchard.Autoroute, Orchard.Projections, Orchard.Fields, Orchard.MediaProcessing, Orchard.OutputCache, Orchard.Taxonomies, Orchard.Workflows, Orchard.Scripting.CSharp, Orchard.Conditions |
| Core | Common, Containers, Dashboard, Feeds, Navigation, Contents, Scheduling, Settings, Shapes, XmlRpc, Title |
| Theme | SafeMode |
When I go to "/Setup"
And I hit "Finish Setup"
Then I should see "Site name is required."
And I should see "Password is required."
And I should see "Password confirmation is required."
When I go to "/Setup"
And I fill in
Scenario: Calling setup on a brand new install
Given I have a clean site with
| extension | names |
| Module | Orchard.Setup, Orchard.Layouts, Orchard.Pages, Orchard.ContentPicker, Orchard.Blogs, Orchard.MediaLibrary, Orchard.Modules, Orchard.Packaging, Orchard.PublishLater, Orchard.Themes, Orchard.Scripting, Orchard.Widgets, Orchard.Users, Orchard.ContentTypes, Orchard.Roles, Orchard.Comments, Orchard.Resources, Orchard.Tags, TinyMce, Orchard.Recipes, Orchard.Warmup, Orchard.Alias, Orchard.Forms, Orchard.Tokens, Orchard.Autoroute, Orchard.Projections, Orchard.Fields, Orchard.MediaProcessing, Orchard.OutputCache, Orchard.Taxonomies, Orchard.Workflows, Orchard.Scripting.CSharp, Orchard.Conditions |
| Core | Common, Containers, Dashboard, Feeds, Navigation, Contents, Scheduling, Settings, Shapes, XmlRpc, Title |
| Theme | SafeMode, TheAdmin, TheThemeMachine |
And I am on "/Setup"
When I fill in
| name | value |
| SiteName | My Site |
| AdminPassword | 6655321 |
@@ -31,4 +52,4 @@ Scenario: RootAndSetupFolderShowsSetupScreenAndFormValuesAreValidated
And I hit "Finish Setup"
And I go to "/"
Then I should see "My Site"
And I should see "Welcome, <strong><a href="/Users/Account/ChangePassword">admin</a></strong>!"
And I should see "Welcome, <strong><a href="/Users/Account/ChangePassword">admin</a></strong>!"

View File

@@ -32,9 +32,8 @@ namespace Orchard.Specs
public virtual void FeatureSetup()
{
testRunner = TechTalk.SpecFlow.TestRunnerManager.GetTestRunner();
TechTalk.SpecFlow.FeatureInfo featureInfo = new TechTalk.SpecFlow.FeatureInfo(new System.Globalization.CultureInfo("en-US"), "Setup", " In order to install orchard\r\n As a new user\r\n I want to access the Setup scre" +
"en from the default screen and the Setup folder, then the Setup should be succes" +
"sful if required fields are filled in", ProgrammingLanguage.CSharp, ((string[])(null)));
TechTalk.SpecFlow.FeatureInfo featureInfo = new TechTalk.SpecFlow.FeatureInfo(new System.Globalization.CultureInfo("en-US"), "Setup", " In order to install orchard\r\n As a new user\r\n I want to setup a new site from" +
" the default screen", ProgrammingLanguage.CSharp, ((string[])(null)));
testRunner.OnFeatureStart(featureInfo);
}
@@ -67,64 +66,159 @@ namespace Orchard.Specs
}
[NUnit.Framework.TestAttribute()]
[NUnit.Framework.DescriptionAttribute("RootAndSetupFolderShowsSetupScreenAndFormValuesAreValidated")]
public virtual void RootAndSetupFolderShowsSetupScreenAndFormValuesAreValidated()
[NUnit.Framework.DescriptionAttribute("Root request shows setup form")]
public virtual void RootRequestShowsSetupForm()
{
TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("RootAndSetupFolderShowsSetupScreenAndFormValuesAreValidated", ((string[])(null)));
TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("Root request shows setup form", ((string[])(null)));
#line 6
this.ScenarioSetup(scenarioInfo);
#line 7
testRunner.Given("I have a clean site with standard extensions", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Given ");
#line 9
testRunner.When("I go to \"/\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "When ");
#line 10
testRunner.Then("I should see \"Welcome to Orchard\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Then ");
#line 11
testRunner.And("I should see \"Finish Setup\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "And ");
#line 12
testRunner.And("the status should be 200 \"OK\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "And ");
#line 14
testRunner.When("I go to \"/Setup\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "When ");
#line 15
testRunner.Then("I should see \"Welcome to Orchard\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Then ");
#line 16
testRunner.And("I should see \"Finish Setup\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "And ");
#line 17
testRunner.And("the status should be 200 \"OK\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "And ");
#line 19
testRunner.When("I go to \"/Setup\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "When ");
#line 20
testRunner.And("I hit \"Finish Setup\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "And ");
#line 21
testRunner.Then("I should see \"Site name is required.\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Then ");
#line 22
testRunner.And("I should see \"Password is required.\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "And ");
#line 23
testRunner.And("I should see \"Password confirmation is required.\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "And ");
#line 25
testRunner.When("I go to \"/Setup\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "When ");
#line hidden
TechTalk.SpecFlow.Table table1 = new TechTalk.SpecFlow.Table(new string[] {
"extension",
"names"});
table1.AddRow(new string[] {
"Module",
@"Orchard.Setup, Orchard.Layouts, Orchard.Pages, Orchard.ContentPicker, Orchard.Blogs, Orchard.MediaLibrary, Orchard.Modules, Orchard.Packaging, Orchard.PublishLater, Orchard.Themes, Orchard.Scripting, Orchard.Widgets, Orchard.Users, Orchard.ContentTypes, Orchard.Roles, Orchard.Comments, Orchard.Resources, Orchard.Tags, TinyMce, Orchard.Recipes, Orchard.Warmup, Orchard.Alias, Orchard.Forms, Orchard.Tokens, Orchard.Autoroute, Orchard.Projections, Orchard.Fields, Orchard.MediaProcessing, Orchard.OutputCache, Orchard.Taxonomies, Orchard.Workflows, Orchard.Scripting.CSharp, Orchard.Conditions"});
table1.AddRow(new string[] {
"Core",
"Common, Containers, Dashboard, Feeds, Navigation, Contents, Scheduling, Settings," +
" Shapes, XmlRpc, Title"});
table1.AddRow(new string[] {
"Theme",
"SafeMode"});
#line 7
testRunner.Given("I have a clean site with", ((string)(null)), table1, "Given ");
#line 12
testRunner.When("I go to \"/\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "When ");
#line 13
testRunner.Then("I should see \"Welcome to Orchard\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Then ");
#line 14
testRunner.And("I should see \"Finish Setup\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "And ");
#line 15
testRunner.And("the status should be 200 \"OK\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "And ");
#line hidden
this.ScenarioCleanup();
}
[NUnit.Framework.TestAttribute()]
[NUnit.Framework.DescriptionAttribute("Setup folder also shows setup form")]
public virtual void SetupFolderAlsoShowsSetupForm()
{
TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("Setup folder also shows setup form", ((string[])(null)));
#line 17
this.ScenarioSetup(scenarioInfo);
#line hidden
TechTalk.SpecFlow.Table table2 = new TechTalk.SpecFlow.Table(new string[] {
"extension",
"names"});
table2.AddRow(new string[] {
"Module",
@"Orchard.Setup, Orchard.Layouts, Orchard.Pages, Orchard.ContentPicker, Orchard.Blogs, Orchard.MediaLibrary, Orchard.Modules, Orchard.Packaging, Orchard.PublishLater, Orchard.Themes, Orchard.Scripting, Orchard.Widgets, Orchard.Users, Orchard.ContentTypes, Orchard.Roles, Orchard.Comments, Orchard.Resources, Orchard.Tags, TinyMce, Orchard.Recipes, Orchard.Warmup, Orchard.Alias, Orchard.Forms, Orchard.Tokens, Orchard.Autoroute, Orchard.Projections, Orchard.Fields, Orchard.MediaProcessing, Orchard.OutputCache, Orchard.Taxonomies, Orchard.Workflows, Orchard.Scripting.CSharp, Orchard.Conditions"});
table2.AddRow(new string[] {
"Core",
"Common, Containers, Dashboard, Feeds, Navigation, Contents, Scheduling, Settings," +
" Shapes, XmlRpc, Title"});
table2.AddRow(new string[] {
"Theme",
"SafeMode"});
#line 18
testRunner.Given("I have a clean site with", ((string)(null)), table2, "Given ");
#line 23
testRunner.When("I go to \"/Setup\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "When ");
#line 24
testRunner.Then("I should see \"Welcome to Orchard\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Then ");
#line 25
testRunner.And("I should see \"Finish Setup\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "And ");
#line 26
testRunner.And("the status should be 200 \"OK\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "And ");
#line hidden
this.ScenarioCleanup();
}
[NUnit.Framework.TestAttribute()]
[NUnit.Framework.DescriptionAttribute("Some of the initial form values are required")]
public virtual void SomeOfTheInitialFormValuesAreRequired()
{
TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("Some of the initial form values are required", ((string[])(null)));
#line 28
this.ScenarioSetup(scenarioInfo);
#line hidden
TechTalk.SpecFlow.Table table3 = new TechTalk.SpecFlow.Table(new string[] {
"extension",
"names"});
table3.AddRow(new string[] {
"Module",
@"Orchard.Setup, Orchard.Layouts, Orchard.Pages, Orchard.ContentPicker, Orchard.Blogs, Orchard.MediaLibrary, Orchard.Modules, Orchard.Packaging, Orchard.PublishLater, Orchard.Themes, Orchard.Scripting, Orchard.Widgets, Orchard.Users, Orchard.ContentTypes, Orchard.Roles, Orchard.Comments, Orchard.Resources, Orchard.Tags, TinyMce, Orchard.Recipes, Orchard.Warmup, Orchard.Alias, Orchard.Forms, Orchard.Tokens, Orchard.Autoroute, Orchard.Projections, Orchard.Fields, Orchard.MediaProcessing, Orchard.OutputCache, Orchard.Taxonomies, Orchard.Workflows, Orchard.Scripting.CSharp, Orchard.Conditions"});
table3.AddRow(new string[] {
"Core",
"Common, Containers, Dashboard, Feeds, Navigation, Contents, Scheduling, Settings," +
" Shapes, XmlRpc, Title"});
table3.AddRow(new string[] {
"Theme",
"SafeMode"});
#line 29
testRunner.Given("I have a clean site with", ((string)(null)), table3, "Given ");
#line 34
testRunner.When("I go to \"/Setup\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "When ");
#line 35
testRunner.And("I hit \"Finish Setup\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "And ");
#line 36
testRunner.Then("I should see \"Site name is required.\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Then ");
#line 37
testRunner.And("I should see \"Password is required.\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "And ");
#line 38
testRunner.And("I should see \"Password confirmation is required.\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "And ");
#line hidden
this.ScenarioCleanup();
}
[NUnit.Framework.TestAttribute()]
[NUnit.Framework.DescriptionAttribute("Calling setup on a brand new install")]
public virtual void CallingSetupOnABrandNewInstall()
{
TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("Calling setup on a brand new install", ((string[])(null)));
#line 40
this.ScenarioSetup(scenarioInfo);
#line hidden
TechTalk.SpecFlow.Table table4 = new TechTalk.SpecFlow.Table(new string[] {
"extension",
"names"});
table4.AddRow(new string[] {
"Module",
@"Orchard.Setup, Orchard.Layouts, Orchard.Pages, Orchard.ContentPicker, Orchard.Blogs, Orchard.MediaLibrary, Orchard.Modules, Orchard.Packaging, Orchard.PublishLater, Orchard.Themes, Orchard.Scripting, Orchard.Widgets, Orchard.Users, Orchard.ContentTypes, Orchard.Roles, Orchard.Comments, Orchard.Resources, Orchard.Tags, TinyMce, Orchard.Recipes, Orchard.Warmup, Orchard.Alias, Orchard.Forms, Orchard.Tokens, Orchard.Autoroute, Orchard.Projections, Orchard.Fields, Orchard.MediaProcessing, Orchard.OutputCache, Orchard.Taxonomies, Orchard.Workflows, Orchard.Scripting.CSharp, Orchard.Conditions"});
table4.AddRow(new string[] {
"Core",
"Common, Containers, Dashboard, Feeds, Navigation, Contents, Scheduling, Settings," +
" Shapes, XmlRpc, Title"});
table4.AddRow(new string[] {
"Theme",
"SafeMode, TheAdmin, TheThemeMachine"});
#line 41
testRunner.Given("I have a clean site with", ((string)(null)), table4, "Given ");
#line 46
testRunner.And("I am on \"/Setup\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "And ");
#line hidden
TechTalk.SpecFlow.Table table5 = new TechTalk.SpecFlow.Table(new string[] {
"name",
"value"});
table1.AddRow(new string[] {
table5.AddRow(new string[] {
"SiteName",
"My Site"});
table1.AddRow(new string[] {
table5.AddRow(new string[] {
"AdminPassword",
"6655321"});
table1.AddRow(new string[] {
table5.AddRow(new string[] {
"ConfirmPassword",
"6655321"});
#line 26
testRunner.And("I fill in", ((string)(null)), table1, "And ");
#line 31
#line 47
testRunner.When("I fill in", ((string)(null)), table5, "When ");
#line 52
testRunner.And("I hit \"Finish Setup\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "And ");
#line 32
#line 53
testRunner.And("I go to \"/\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "And ");
#line 33
#line 54
testRunner.Then("I should see \"My Site\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Then ");
#line 34
#line 55
testRunner.And("I should see \"Welcome, <strong><a href=\"/Users/Account/ChangePassword\">admin</a><" +
"/strong>!\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "And ");
#line hidden

View File

@@ -9,7 +9,7 @@ Scenario: Dynamic compilation can be disabled
When I go to "admin"
Then I should see "<div id="orchard-version">Orchard v(?:\.\d+){2,4}</div>"
@ignore
@ignore
Scenario: Dynamic compilation will kick in if modules are deployed as source files only
Given I have chosen to deploy modules as source files only
And I have installed Orchard
@@ -21,4 +21,4 @@ Scenario: Dynamic compilation can be forced by disabling the precompiled module
Given I have chosen to load modules using dymamic compilation only
And I have installed Orchard
When I go to "admin"
Then I should see "<div id="orchard-version">Orchard v(?:\.\d+){2,4}</div>"
Then I should see "<div id="orchard-version">Orchard v(?:\.\d+){2,4}</div>"

View File

@@ -3,7 +3,7 @@
// This code was generated by SpecFlow (http://www.specflow.org/).
// SpecFlow Version:1.9.0.77
// SpecFlow Generator Version:1.9.0.0
// Runtime Version:4.0.30319.42000
// Runtime Version:4.0.30319.34014
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.

View File

@@ -35,7 +35,7 @@ Scenario: Creating and using Text fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[Subject].TextFieldSettingsEventsViewModel.Settings.Flavor | Large |
| Fields[0].TextFieldSettingsEventsViewModel.Settings.Flavor | Large |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
Then I should see "class=\"text large\""
@@ -44,7 +44,7 @@ Scenario: Creating and using Text fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[Subject].TextFieldSettingsEventsViewModel.Settings.Required | true |
| Fields[0].TextFieldSettingsEventsViewModel.Settings.Required | true |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
And I fill in
@@ -57,7 +57,7 @@ Scenario: Creating and using Text fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[Subject].TextFieldSettingsEventsViewModel.Settings.Hint | Subject of the event |
| Fields[0].TextFieldSettingsEventsViewModel.Settings.Hint | Subject of the event |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
Then I should see "Subject of the event"
@@ -77,7 +77,7 @@ Scenario: Creating and using Text fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[Subject].TextFieldSettingsEventsViewModel.Settings.DefaultValue | Orchard Harvest 2016 |
| Fields[0].TextFieldSettingsEventsViewModel.Settings.DefaultValue | Orchard Harvest 2016 |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
Then I should see "value=\"Orchard Harvest 2016\""
@@ -86,7 +86,7 @@ Scenario: Creating and using Text fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[Subject].TextFieldSettingsEventsViewModel.Settings.Required | true |
| Fields[0].TextFieldSettingsEventsViewModel.Settings.Required | true |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
Then I should see "required=\"required\""
@@ -95,7 +95,7 @@ Scenario: Creating and using Text fields
When I go to "Admin/ContentTypes/Edit/Event"
And I fill in
| name | value |
| Fields[Subject].TextFieldSettingsEventsViewModel.Settings.Required | false |
| Fields[0].TextFieldSettingsEventsViewModel.Settings.Required | false |
And I hit "Save"
And I go to "Admin/Contents/Create/Event"
Then I should not see "required=\"required\""

View File

@@ -132,7 +132,7 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table3.AddRow(new string[] {
"Fields[Subject].TextFieldSettingsEventsViewModel.Settings.Flavor",
"Fields[0].TextFieldSettingsEventsViewModel.Settings.Flavor",
"Large"});
#line 36
testRunner.And("I fill in", ((string)(null)), table3, "And ");
@@ -149,7 +149,7 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table4.AddRow(new string[] {
"Fields[Subject].TextFieldSettingsEventsViewModel.Settings.Required",
"Fields[0].TextFieldSettingsEventsViewModel.Settings.Required",
"true"});
#line 45
testRunner.And("I fill in", ((string)(null)), table4, "And ");
@@ -177,7 +177,7 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table6.AddRow(new string[] {
"Fields[Subject].TextFieldSettingsEventsViewModel.Settings.Hint",
"Fields[0].TextFieldSettingsEventsViewModel.Settings.Hint",
"Subject of the event"});
#line 58
testRunner.And("I fill in", ((string)(null)), table6, "And ");
@@ -215,7 +215,7 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table8.AddRow(new string[] {
"Fields[Subject].TextFieldSettingsEventsViewModel.Settings.DefaultValue",
"Fields[0].TextFieldSettingsEventsViewModel.Settings.DefaultValue",
"Orchard Harvest 2016"});
#line 78
testRunner.And("I fill in", ((string)(null)), table8, "And ");
@@ -232,7 +232,7 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table9.AddRow(new string[] {
"Fields[Subject].TextFieldSettingsEventsViewModel.Settings.Required",
"Fields[0].TextFieldSettingsEventsViewModel.Settings.Required",
"true"});
#line 87
testRunner.And("I fill in", ((string)(null)), table9, "And ");
@@ -249,7 +249,7 @@ this.ScenarioSetup(scenarioInfo);
"name",
"value"});
table10.AddRow(new string[] {
"Fields[Subject].TextFieldSettingsEventsViewModel.Settings.Required",
"Fields[0].TextFieldSettingsEventsViewModel.Settings.Required",
"false"});
#line 96
testRunner.And("I fill in", ((string)(null)), table10, "And ");

View File

@@ -1,99 +0,0 @@
using System.Web.Mvc;
using NUnit.Framework;
using Orchard.DynamicForms.Services.Models;
using Orchard.DynamicForms.ValidationRules;
namespace Orchard.Tests.Modules.DynamicForms.ValidationRules {
[TestFixture]
public class EmailValidationTests {
[SetUp]
public void Init() {
_context = new ValidateInputContext {ModelState = new ModelStateDictionary(), FieldName = "Email Address"};
_validator = new EmailAddress();
}
private ValidateInputContext _context;
private EmailAddress _validator;
[Test]
public void InvalidateDoubleDotDomain() {
_context.AttemptedValue = "x@example..com";
_validator.Validate(_context);
Assert.That(_context.ModelState.IsValid, Is.False);
}
[Test]
public void InvalidateMissingAt() {
_context.AttemptedValue = "x.example.com";
_validator.Validate(_context);
Assert.That(_context.ModelState.IsValid, Is.False);
}
[Test]
public void InvalidateMissingDomain() {
_context.AttemptedValue = "x@";
_validator.Validate(_context);
Assert.That(_context.ModelState.IsValid, Is.False);
}
[Test]
public void InvalidateMissingLocalPart() {
_context.AttemptedValue = "@example.com";
_validator.Validate(_context);
Assert.That(_context.ModelState.IsValid, Is.False);
}
[Test]
public void ValidateMissingTLD() {
_context.AttemptedValue = "something@localhost";
_validator.Validate(_context);
Assert.That(_context.ModelState.IsValid, Is.True);
}
[Test]
public void ValidateOneLetterTLD() {
_context.AttemptedValue = "something@example.x";
_validator.Validate(_context);
Assert.That(_context.ModelState.IsValid, Is.True);
}
[Test]
public void ValidateTenLetterTLD() {
_context.AttemptedValue = "something@example.accountant";
_validator.Validate(_context);
Assert.That(_context.ModelState.IsValid, Is.True);
}
[Test]
public void ValidateThreeLetterTLD() {
_context.AttemptedValue = "something@example.com";
_validator.Validate(_context);
Assert.That(_context.ModelState.IsValid, Is.True);
}
[Test]
public void ValidateTwoLetterTLD() {
_context.AttemptedValue = "something@example.io";
_validator.Validate(_context);
Assert.That(_context.ModelState.IsValid, Is.True);
}
}
}

View File

@@ -14,6 +14,7 @@ using Orchard.ContentManagement.MetaData.Builders;
using Orchard.ContentManagement.Records;
using Orchard.Core.Common.Handlers;
using Orchard.Core.Common.Models;
using Orchard.Data;
using Orchard.Environment;
using Orchard.Environment.Configuration;
using Orchard.Environment.Extensions;
@@ -68,7 +69,6 @@ namespace Orchard.Tests.Modules.Indexing {
builder.RegisterType<IndexingTaskManager>().As<IIndexingTaskManager>();
builder.RegisterType<DefaultContentManager>().As<IContentManager>();
builder.RegisterType<StubCacheManager>().As<ICacheManager>();
builder.RegisterType<StubWorkContextAccessor>().As<IWorkContextAccessor>();
builder.RegisterType<Signals>().As<ISignals>();
builder.RegisterType<DefaultContentManagerSession>().As<IContentManagerSession>();
builder.RegisterInstance(_contentDefinitionManager.Object);

View File

@@ -9,7 +9,6 @@ using Orchard.Environment.Configuration;
using Orchard.FileSystems.AppData;
using Orchard.Indexing;
using Orchard.Tests.FileSystems.AppData;
using Orchard.Tests.Stubs;
namespace Orchard.Tests.Modules.Indexing {
public class LuceneIndexProviderTests {
@@ -36,7 +35,6 @@ namespace Orchard.Tests.Modules.Indexing {
_appDataFolder = AppDataFolderTests.CreateAppDataFolder(_basePath);
var builder = new ContainerBuilder();
builder.RegisterType<StubWorkContextAccessor>().As<IWorkContextAccessor>();
builder.RegisterType<DefaultLuceneAnalyzerProvider>().As<ILuceneAnalyzerProvider>();
builder.RegisterType<DefaultLuceneAnalyzerSelector>().As<ILuceneAnalyzerSelector>();
builder.RegisterType<LuceneIndexProvider>().As<IIndexProvider>();

View File

@@ -8,7 +8,6 @@ using Orchard.Environment.Configuration;
using Orchard.FileSystems.AppData;
using Orchard.Indexing;
using Orchard.Tests.FileSystems.AppData;
using Orchard.Tests.Stubs;
namespace Orchard.Tests.Modules.Indexing {
public class LuceneSearchBuilderTests {
@@ -35,7 +34,6 @@ namespace Orchard.Tests.Modules.Indexing {
_appDataFolder = AppDataFolderTests.CreateAppDataFolder(_basePath);
var builder = new ContainerBuilder();
builder.RegisterType<StubWorkContextAccessor>().As<IWorkContextAccessor>();
builder.RegisterType<DefaultLuceneAnalyzerProvider>().As<ILuceneAnalyzerProvider>();
builder.RegisterType<DefaultLuceneAnalyzerSelector>().As<ILuceneAnalyzerSelector>();
builder.RegisterType<LuceneIndexProvider>().As<IIndexProvider>();

View File

@@ -41,7 +41,6 @@
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<LangVersion>latest</LangVersion>
<CodeAnalysisRuleSet>..\OrchardBasicCorrectness.ruleset</CodeAnalysisRuleSet>
<PlatformTarget>AnyCPU</PlatformTarget>
<Prefer32Bit>false</Prefer32Bit>
@@ -53,7 +52,6 @@
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<LangVersion>latest</LangVersion>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<PlatformTarget>AnyCPU</PlatformTarget>
<Prefer32Bit>false</Prefer32Bit>
@@ -83,8 +81,8 @@
<HintPath>..\packages\Iesi.Collections.4.0.1.4000\lib\net40\Iesi.Collections.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="DotNetZip">
<HintPath>..\packages\DotNetZip.1.12.0\lib\net20\DotNetZip.dll</HintPath>
<Reference Include="Ionic.Zip, Version=1.9.1.8, Culture=neutral, PublicKeyToken=edbe51ad942a3f5c, processorArchitecture=MSIL">
<HintPath>..\packages\DotNetZip.1.9.1.8\lib\net20\Ionic.Zip.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="IronRuby, Version=1.1.3.0, Culture=neutral, PublicKeyToken=7f709c5b713576e1, processorArchitecture=MSIL">
@@ -201,7 +199,6 @@
<Compile Include="CodeGeneration\Commands\CodeGenerationCommandsTests.cs" />
<Compile Include="Comments\Services\CommentServiceTests.cs" />
<Compile Include="DesignerTools\Services\ObjectDumperTests.cs" />
<Compile Include="DynamicForms\ValidationRules\EmailValidationTests.cs" />
<Compile Include="Email\EmailChannelTests.cs" />
<Compile Include="ImageProcessing\ImageProcessingTests.cs" />
<Compile Include="ImportExport\Services\ImportExportServiceTests.cs" />
@@ -287,10 +284,6 @@
<Project>{4A4595EF-6C37-4F99-96ED-4AE0B9E438D3}</Project>
<Name>Orchard.DesignerTools</Name>
</ProjectReference>
<ProjectReference Include="..\Orchard.Web\Modules\Orchard.DynamicForms\Orchard.DynamicForms.csproj">
<Project>{82190f52-2901-46d6-8a4c-34649959483f}</Project>
<Name>Orchard.DynamicForms</Name>
</ProjectReference>
<ProjectReference Include="..\Orchard.Web\Modules\Orchard.Email\Orchard.Email.csproj">
<Project>{05660f47-d649-48bd-9ded-df4e01e7cff9}</Project>
<Name>Orchard.Email</Name>

View File

@@ -117,7 +117,7 @@
</IISUrl>
<NTLMAuthentication>False</NTLMAuthentication>
<UseCustomServer>True</UseCustomServer>
<CustomServerUrl>https://github.com/OrchardCMS/Orchard</CustomServerUrl>
<CustomServerUrl>http://orchard.codeplex.com</CustomServerUrl>
<SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
</WebProjectProperties>
</FlavorProperties>

View File

@@ -30,5 +30,5 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
[assembly: AssemblyVersion("1.10.3")]
[assembly: AssemblyFileVersion("1.10.3")]
[assembly: AssemblyVersion("1.10.1")]
[assembly: AssemblyFileVersion("1.10.1")]

View File

@@ -17,9 +17,8 @@ namespace Orchard.Tests.Modules.Recipes.RecipeHandlers {
builder.RegisterType<RecipeExecutionLogger>().AsSelf();
builder.RegisterType<StubRecipeExecutionStep>().As<IRecipeExecutionStep>().AsSelf().SingleInstance();
builder.RegisterType<RecipeExecutionStepHandler>().SingleInstance();
builder.RegisterType<RecipeExecutionStepResolver>().As<IRecipeExecutionStepResolver>().SingleInstance();
_container = builder.Build();
_container = builder.Build();
}
[Test]

View File

@@ -205,8 +205,7 @@ namespace Orchard.Tests.Modules.Users.Controllers {
@"Ima.Fool@example.com",
@"""Ima.Fool""@example.com",
@"""Ima Fool""@example.com",
"2xxx1414@i.ua",
"Dreißig-öffentliche-Ämter-in-Übersee@Beispiel.de"
"2xxx1414@i.ua"
)]
string email)
{

View File

@@ -2,7 +2,7 @@
<packages>
<package id="Autofac" version="3.5.2" targetFramework="net452" />
<package id="Castle.Core" version="3.3.1" targetFramework="net452" />
<package id="DotNetZip" version="1.12" targetFramework="net452" />
<package id="DotNetZip" version="1.9.1.8" targetFramework="net452" />
<package id="FluentNHibernate" version="2.0.3.0" targetFramework="net452" />
<package id="Iesi.Collections" version="4.0.1.4000" targetFramework="net452" />
<package id="IronRuby" version="1.1.3" targetFramework="net452" />

View File

@@ -1,6 +1,5 @@
using System;
using System.Data;
using System.IO;
using System.Linq;
using Autofac;
using NHibernate;
@@ -14,11 +13,13 @@ using Orchard.Environment.Configuration;
using Orchard.Environment.ShellBuilders.Models;
using Orchard.FileSystems.AppData;
using Orchard.Tests.ContentManagement;
using System.IO;
using Orchard.Tests.Environment;
using Orchard.Tests.FileSystems.AppData;
namespace Orchard.Tests.DataMigration {
[TestFixture]
namespace Orchard.Tests.DataMigration
{
[TestFixture]
public class SchemaBuilderTestsBase {
private IContainer _container;
private ISessionFactory _sessionFactory;
@@ -99,21 +100,6 @@ namespace Orchard.Tests.DataMigration {
);
}
[Test]
public void GenericCreateCommandShouldBeHandled() {
_schemaBuilder
.CreateTable("User", table => table
.Column<int>("Id", column => column.PrimaryKey().Identity())
.Column<string>("Firstname", column => column.WithLength(255))
.Column<string>("Lastname", column => column.WithLength(100).NotNull())
.Column<string>("SN", column => column.WithLength(40).Unique())
.Column<decimal>("Salary", column => column.WithPrecision(9).WithScale(2))
.Column<decimal>("Gender", column => column.WithDefault(""))
.Column<Guid>("Identifier")
.Column<byte[]>("Photo", column => column.WithLength(2048))
);
}
[Test]
public void DropTableCommandShouldBeHandled() {
_schemaBuilder

View File

@@ -247,10 +247,7 @@ namespace Orchard.Tests.DisplayManagement.Descriptors {
_container.Resolve<TestShapeProvider>().Discover =
builder => builder.Describe("Hello").From(TestFeature())
.Placement(ShapePlacementParsingStrategy.BuildPredicate(c => true,
new KeyValuePair<string, string>("Path", path),
new[] { new PathPlacementParseMatchProvider() }),
new PlacementInfo { Location = "Match" });
.Placement(ShapePlacementParsingStrategy.BuildPredicate(c => true, new KeyValuePair<string, string>("Path", path)), new PlacementInfo { Location = "Match" });
var manager = _container.Resolve<IShapeTableManager>();
var hello = manager.GetShapeTable(null).Descriptors["Hello"];

View File

@@ -196,7 +196,7 @@ Description: My super wiki module for Orchard.
_folders.Manifests.Add("MyCompany.AnotherWiki", @"
Name: AnotherWiki
Author: Coder Notaprogrammer
Website: https://github.com/MyCompany/AnotherWiki
Website: http://anotherwiki.codeplex.com
Version: 1.2.3
OrchardVersion: 1
Features:
@@ -222,7 +222,7 @@ Features:
Assert.That(descriptor.Id, Is.EqualTo("MyCompany.AnotherWiki"));
Assert.That(descriptor.Name, Is.EqualTo("AnotherWiki"));
Assert.That(descriptor.Author, Is.EqualTo("Coder Notaprogrammer"));
Assert.That(descriptor.WebSite, Is.EqualTo("https://github.com/MyCompany/AnotherWiki"));
Assert.That(descriptor.WebSite, Is.EqualTo("http://anotherwiki.codeplex.com"));
Assert.That(descriptor.Version, Is.EqualTo("1.2.3"));
Assert.That(descriptor.OrchardVersion, Is.EqualTo("1"));
Assert.That(descriptor.Features.Count(), Is.EqualTo(5));
@@ -277,7 +277,7 @@ Features:
_folders.Manifests.Add("AnotherWiki", @"
Name: AnotherWiki
Author: Coder Notaprogrammer
Website: https://github.com/MyCompany/AnotherWiki
Website: http://anotherwiki.codeplex.com
Version: 1.2.3
OrchardVersion: 1
Description: Module Description
@@ -303,7 +303,7 @@ Features:
Assert.That(descriptor.Id, Is.EqualTo("AnotherWiki"));
Assert.That(descriptor.Name, Is.EqualTo("AnotherWiki"));
Assert.That(descriptor.Author, Is.EqualTo("Coder Notaprogrammer"));
Assert.That(descriptor.WebSite, Is.EqualTo("https://github.com/MyCompany/AnotherWiki"));
Assert.That(descriptor.WebSite, Is.EqualTo("http://anotherwiki.codeplex.com"));
Assert.That(descriptor.Version, Is.EqualTo("1.2.3"));
Assert.That(descriptor.OrchardVersion, Is.EqualTo("1"));
Assert.That(descriptor.Description, Is.EqualTo("Module Description"));

View File

@@ -197,7 +197,7 @@ Features:
Name: AnotherWiki
SessionState: required
Author: Coder Notaprogrammer
Website: https://github.com/MyCompany/AnotherWiki
Website: http://anotherwiki.codeplex.com
Version: 1.2.3
OrchardVersion: 1
Features:
@@ -223,7 +223,7 @@ Features:
Assert.That(descriptor.Id, Is.EqualTo("MyCompany.AnotherWiki"));
Assert.That(descriptor.Name, Is.EqualTo("AnotherWiki"));
Assert.That(descriptor.Author, Is.EqualTo("Coder Notaprogrammer"));
Assert.That(descriptor.WebSite, Is.EqualTo("https://github.com/MyCompany/AnotherWiki"));
Assert.That(descriptor.WebSite, Is.EqualTo("http://anotherwiki.codeplex.com"));
Assert.That(descriptor.Version, Is.EqualTo("1.2.3"));
Assert.That(descriptor.OrchardVersion, Is.EqualTo("1"));
Assert.That(descriptor.Features.Count(), Is.EqualTo(5));

View File

@@ -39,21 +39,5 @@ namespace Orchard.Tests.Localization {
Assert.AreEqual("Foo \"{0}\"", translations["~/themes/mytheme/views/myview.cshtml|foo \"{0}\""]);
}
[Test]
public void ShouldHandleUnclosedQuote() {
var parser = new LocalizationStreamParser();
var text = new StringBuilder();
text.AppendLine("#: ~/Themes/MyTheme/Views/MyView.cshtml");
text.AppendLine("msgctxt \"");
text.AppendLine("msgid \"Foo \\\"{0}\\\"\"");
text.AppendLine("msgstr \"Foo \\\"{0}\\\"\"");
var translations = new Dictionary<string, string>();
parser.ParseLocalizationStream(text.ToString(), translations, false);
Assert.AreEqual("Foo \"{0}\"", translations["|foo \"{0}\""]);
}
}
}

View File

@@ -41,7 +41,6 @@
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<LangVersion>latest</LangVersion>
<CodeAnalysisRuleSet>..\OrchardBasicCorrectness.ruleset</CodeAnalysisRuleSet>
<PlatformTarget>AnyCPU</PlatformTarget>
<Prefer32Bit>false</Prefer32Bit>
@@ -53,7 +52,6 @@
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<LangVersion>latest</LangVersion>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<PlatformTarget>AnyCPU</PlatformTarget>
<Prefer32Bit>false</Prefer32Bit>

View File

@@ -33,5 +33,5 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
[assembly: AssemblyVersion("1.10.3")]
[assembly: AssemblyFileVersion("1.10.3")]
[assembly: AssemblyVersion("1.10.1")]
[assembly: AssemblyFileVersion("1.10.1")]

View File

@@ -6,7 +6,7 @@ using Orchard.Utility.Extensions;
namespace Orchard.Tests.Utility.Extensions {
[TestFixture]
public class HttpRequestExtensionsTests {
[Test]
public void IsLocalUrlShouldReturnFalseWhenUrlIsNullOrEmpty() {
var request = new StubHttpRequest();
@@ -21,7 +21,6 @@ namespace Orchard.Tests.Utility.Extensions {
var request = new StubHttpRequest();
Assert.That(request.IsLocalUrl("//"), Is.False);
Assert.That(request.IsLocalUrl(" //"), Is.False);
}
[Test]
@@ -29,7 +28,6 @@ namespace Orchard.Tests.Utility.Extensions {
var request = new StubHttpRequest();
Assert.That(request.IsLocalUrl("/\\"), Is.False);
Assert.That(request.IsLocalUrl(" /\\"), Is.False);
}
[Test]
@@ -37,7 +35,6 @@ namespace Orchard.Tests.Utility.Extensions {
var request = new StubHttpRequest();
Assert.That(request.IsLocalUrl("/"), Is.True);
Assert.That(request.IsLocalUrl("\t/"), Is.True);
Assert.That(request.IsLocalUrl("/контакты"), Is.True);
Assert.That(request.IsLocalUrl("/ "), Is.True);
Assert.That(request.IsLocalUrl("/abc-def"), Is.True);
@@ -49,18 +46,6 @@ namespace Orchard.Tests.Utility.Extensions {
request.Headers.Add("Host", "localhost");
Assert.That(request.IsLocalUrl("http://localhost"), Is.True);
Assert.That(request.IsLocalUrl("https://localhost"), Is.True);
}
[Test]
public void IsLocalUrlShouldReturnFalseForNonHttpSchemes() {
var request = new StubHttpRequest();
request.Headers.Add("Host", "localhost");
Assert.That(request.IsLocalUrl("httpx://localhost"), Is.False);
Assert.That(request.IsLocalUrl("foo://localhost"), Is.False);
Assert.That(request.IsLocalUrl("data://localhost"), Is.False);
Assert.That(request.IsLocalUrl("mailto://localhost"), Is.False);
}
[Test]

View File

@@ -22,7 +22,6 @@
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<LangVersion>latest</LangVersion>
<Prefer32Bit>false</Prefer32Bit>
<UseVSHostingProcess>false</UseVSHostingProcess>
<CodeAnalysisRuleSet>..\OrchardBasicCorrectness.ruleset</CodeAnalysisRuleSet>
@@ -34,7 +33,6 @@
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<LangVersion>latest</LangVersion>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>

View File

@@ -32,8 +32,8 @@ using System.Security;
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
[assembly: AssemblyVersion("1.10.3")]
[assembly: AssemblyFileVersion("1.10.3")]
[assembly: AssemblyVersion("1.10.1")]
[assembly: AssemblyFileVersion("1.10.1")]
// Enable web application to call this assembly in Full Trust
[assembly: AllowPartiallyTrustedCallers]

View File

@@ -41,7 +41,6 @@
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<LangVersion>latest</LangVersion>
<CodeAnalysisRuleSet>..\OrchardBasicCorrectness.ruleset</CodeAnalysisRuleSet>
<PlatformTarget>AnyCPU</PlatformTarget>
<Prefer32Bit>false</Prefer32Bit>
@@ -53,7 +52,6 @@
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<LangVersion>latest</LangVersion>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>

View File

@@ -33,5 +33,5 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below:
[assembly: AssemblyVersion("1.10.3")]
[assembly: AssemblyFileVersion("1.10.3")]
[assembly: AssemblyVersion("1.10.1")]
[assembly: AssemblyFileVersion("1.10.1")]

View File

@@ -62,7 +62,7 @@
<Component Type="Orchard.FileSystems.Dependencies.DefaultExtensionDependenciesManager">
<Properties>
<!-- Set Value="true" to disable compiled dependencies files monitoring -->
<!-- Set Value="true" to disable compiled dependencides files monitoring -->
<Property Name="DisableMonitoring" Value="false"/>
</Properties>
</Component>

View File

@@ -26,8 +26,8 @@
-->
<!--
<component instance-scope="per-lifetime-scope"
type="Orchard.Data.TransactionManager, Orchard.Framework"
service="Orchard.Data.ITransactionManager">
type="Orchard.Data.SessionLocator, Orchard.Framework"
service="Orchard.Data.ISessionLocator">
<properties>
<property name="IsolationLevel" value="ReadUncommitted" />
</properties>

View File

@@ -46,7 +46,7 @@ namespace Orchard.Core.Common.Drivers {
return ContentShape("Fields_Common_Text_Edit", GetDifferentiator(field, part),
() => {
var settings = field.PartFieldDefinition.Settings.GetModel<TextFieldSettings>();
var text = part.IsNew() && String.IsNullOrEmpty(field.Value) ? settings.DefaultValue : field.Value;
var text = part.IsNew() ? settings.DefaultValue : field.Value;
var viewModel = new TextFieldDriverViewModel {
Field = field,
@@ -84,7 +84,8 @@ namespace Orchard.Core.Common.Drivers {
}
protected override void Exporting(ContentPart part, TextField field, ExportContentContext context) {
context.Element(field.FieldDefinition.Name + "." + field.Name).SetAttributeValue("Text", field.Value);
if (!String.IsNullOrEmpty(field.Value))
context.Element(field.FieldDefinition.Name + "." + field.Name).SetAttributeValue("Text", field.Value);
}
protected override void Describe(DescribeMembersContext context) {

View File

@@ -2,8 +2,8 @@
AntiForgery: enabled
Author: The Orchard Team
Website: http://orchardproject.net
Version: 1.10.3
OrchardVersion: 1.10.3
Version: 1.10.1
OrchardVersion: 1.9
Description: The common module introduces content parts that are going to be used by most content types (common, body, identity).
FeatureDescription: Core content parts.
Dependencies: Settings

View File

@@ -32,8 +32,7 @@ namespace Orchard.Core.Containers.Drivers {
IContentQuery<ContentItem> query = _contentManager
.Query(VersionOptions.Published)
.Join<CommonPartRecord>().Where(cr => cr.Container.Id == container.Id)
.Join<ContainablePartRecord>().OrderByDescending(x => x.Position);
.Join<CommonPartRecord>().Where(cr => cr.Container.Id == container.Id);
if (part.Record.ApplyFilter)
query = query.Where(part.Record.FilterByProperty, part.Record.FilterByOperator, part.Record.FilterByValue);
@@ -55,7 +54,7 @@ namespace Orchard.Core.Containers.Drivers {
return ContentShape(
"Parts_ContainerWidget_Edit",
() => {
var model = new ContainerWidgetViewModel { Part = part };
var model = new ContainerWidgetViewModel {Part = part};
var containers = _contentManager.Query<ContainerPart, ContainerPartRecord>(VersionOptions.Latest).List().ToArray();
if (updater != null) {
@@ -68,12 +67,12 @@ namespace Orchard.Core.Containers.Drivers {
}
var listItems = !containers.Any()
? new[] { new SelectListItem { Text = T("(None - create container enabled items first)").Text, Value = "0" } }
? new[] {new SelectListItem {Text = T("(None - create container enabled items first)").Text, Value = "0"}}
: containers.Select(x => new SelectListItem {
Value = Convert.ToString(x.Id),
Text = x.ContentItem.TypeDefinition.DisplayName + ": " + _contentManager.GetItemMetadata(x.ContentItem).DisplayText,
Selected = x.Id == model.Part.Record.ContainerId,
});
Value = Convert.ToString(x.Id),
Text = x.ContentItem.TypeDefinition.DisplayName + ": " + _contentManager.GetItemMetadata(x.ContentItem).DisplayText,
Selected = x.Id == model.Part.Record.ContainerId,
});
model.AvailableContainers = new SelectList(listItems, "Value", "Text", model.Part.Record.ContainerId);

View File

@@ -2,8 +2,8 @@
AntiForgery: enabled
Author: The Orchard Team
Website: http://orchardproject.net
Version: 1.10.3
OrchardVersion: 1.10.3
Version: 1.10.1
OrchardVersion: 1.9
Description: The containers module introduces container and containable behaviors for content items.
FeatureDescription: Container and containable parts to enable parent-child relationships between content items.
Dependencies: Contents, Feeds

View File

@@ -1,23 +1,18 @@
using System.Linq;
using System.Web;
using Orchard.ContentManagement;
using Orchard.ContentManagement.MetaData;
using Orchard.Core.Contents.Settings;
using Orchard.Localization;
using Orchard.Mvc.Html;
using Orchard.Security;
using Orchard.UI.Navigation;
namespace Orchard.Core.Contents {
public class AdminMenu : INavigationProvider {
private readonly IContentDefinitionManager _contentDefinitionManager;
private readonly IContentManager _contentManager;
private readonly IAuthorizer _authorizer;
public AdminMenu(IContentDefinitionManager contentDefinitionManager, IContentManager contentManager, IAuthorizer authorizer) {
public AdminMenu(IContentDefinitionManager contentDefinitionManager, IContentManager contentManager) {
_contentDefinitionManager = contentDefinitionManager;
_contentManager = contentManager;
_authorizer = authorizer;
}
public Localizer T { get; set; }
@@ -25,17 +20,10 @@ namespace Orchard.Core.Contents {
public void GetNavigation(NavigationBuilder builder) {
var contentTypeDefinitions = _contentDefinitionManager.ListTypeDefinitions().OrderBy(d => d.Name);
var listableContentTypes = contentTypeDefinitions.Where(ctd => ctd.Settings.GetModel<ContentTypeSettings>().Listable);
ContentItem listableCi = null;
foreach(var contentTypeDefinition in listableContentTypes) {
listableCi = _contentManager.New(contentTypeDefinition.Name);
if(_authorizer.Authorize(Permissions.EditContent, listableCi)) {
builder.AddImageSet("content")
.Add(T("Content"), "1.4", menu => menu
.Add(T("Content Items"), "1", item => item.Action("List", "Admin", new { area = "Contents", id = "" }).LocalNav()));
break;
}
}
builder.AddImageSet("content")
.Add(T("Content"), "1.4", menu => menu
.Permission(Permissions.EditOwnContent)
.Add(T("Content Items"), "1", item => item.Action("List", "Admin", new { area = "Contents", id = "" }).LocalNav()));
var contentTypes = contentTypeDefinitions.Where(ctd => ctd.Settings.GetModel<ContentTypeSettings>().Creatable).OrderBy(ctd => ctd.DisplayName);
if (contentTypes.Any()) {
builder.Add(T("New"), "-1", menu => {
@@ -46,9 +34,9 @@ namespace Orchard.Core.Contents {
var createRouteValues = cim.CreateRouteValues;
// review: the display name should be a LocalizedString
if (createRouteValues.Any())
menu.Add(T.Encode(contentTypeDefinition.DisplayName), "5", item => item.Action(cim.CreateRouteValues["Action"] as string, cim.CreateRouteValues["Controller"] as string, cim.CreateRouteValues)
// Apply "CreateContent" permission for the content type
.Permission(DynamicPermissions.CreateDynamicPermission(DynamicPermissions.PermissionTemplates[Permissions.CreateContent.Name], contentTypeDefinition)));
menu.Add(T(contentTypeDefinition.DisplayName), "5", item => item.Action(cim.CreateRouteValues["Action"] as string, cim.CreateRouteValues["Controller"] as string, cim.CreateRouteValues)
// Apply "PublishOwn" permission for the content type
.Permission(DynamicPermissions.CreateDynamicPermission(DynamicPermissions.PermissionTemplates[Permissions.PublishOwnContent.Name], contentTypeDefinition)));
}
});
}

View File

@@ -81,9 +81,9 @@ namespace Orchard.Core.Contents.Controllers {
}
var query = _contentManager.Query(versionOptions, GetListableTypes(false).Select(ctd => ctd.Name).ToArray());
ContentTypeDefinition contentTypeDefinition = null;
if (!string.IsNullOrEmpty(model.TypeName)) {
contentTypeDefinition = _contentDefinitionManager.GetTypeDefinition(model.TypeName);
var contentTypeDefinition = _contentDefinitionManager.GetTypeDefinition(model.TypeName);
if (contentTypeDefinition == null)
return HttpNotFound();
@@ -110,11 +110,11 @@ namespace Orchard.Core.Contents.Controllers {
break;
}
if (!String.IsNullOrWhiteSpace(model.Options.SelectedCulture)) {
if(!String.IsNullOrWhiteSpace(model.Options.SelectedCulture)) {
query = _cultureFilter.FilterCulture(query, model.Options.SelectedCulture);
}
if (model.Options.ContentsStatus == ContentsStatus.Owner) {
if(model.Options.ContentsStatus == ContentsStatus.Owner) {
query = query.Where<CommonPartRecord>(cr => cr.OwnerId == Services.WorkContext.CurrentUser.Id);
}
@@ -134,7 +134,7 @@ namespace Orchard.Core.Contents.Controllers {
var list = Shape.List();
list.AddRange(pageOfContentItems.Select(ci => _contentManager.BuildDisplay(ci, "SummaryAdmin")));
var viewModel = Shape.ViewModel(ContentType: contentTypeDefinition)
var viewModel = Shape.ViewModel()
.ContentItems(list)
.Pager(pagerShape)
.Options(model.Options)
@@ -145,7 +145,7 @@ namespace Orchard.Core.Contents.Controllers {
private IEnumerable<ContentTypeDefinition> GetCreatableTypes(bool andContainable) {
return _contentDefinitionManager.ListTypeDefinitions().Where(ctd =>
Services.Authorizer.Authorize(Permissions.CreateContent, _contentManager.New(ctd.Name)) &&
Services.Authorizer.Authorize(Permissions.EditContent, _contentManager.New(ctd.Name)) &&
ctd.Settings.GetModel<ContentTypeSettings>().Creatable &&
(!andContainable || ctd.Parts.Any(p => p.PartDefinition.Name == "ContainablePart")));
}
@@ -247,7 +247,7 @@ namespace Orchard.Core.Contents.Controllers {
var contentItem = _contentManager.New(id);
if (!Services.Authorizer.Authorize(Permissions.CreateContent, contentItem, T("Cannot create content")))
if (!Services.Authorizer.Authorize(Permissions.EditContent, contentItem, T("Cannot create content")))
return new HttpUnauthorizedResult();
if (containerId.HasValue && contentItem.Is<ContainablePart>()) {
@@ -393,7 +393,7 @@ namespace Orchard.Core.Contents.Controllers {
if (contentItem == null)
return HttpNotFound();
if (!Services.Authorizer.Authorize(Permissions.CreateContent, contentItem, T("Couldn't clone content")))
if (!Services.Authorizer.Authorize(Permissions.EditContent, contentItem, T("Couldn't clone content")))
return new HttpUnauthorizedResult();
try {

View File

@@ -9,11 +9,10 @@ using Orchard.Security.Permissions;
namespace Orchard.Core.Contents {
public class DynamicPermissions : IPermissionProvider {
private static readonly Permission CreateContent = new Permission { Description = "Create {0}", Name = "Create_{0}", ImpliedBy = new[] { Permissions.CreateContent } };
private static readonly Permission PublishContent = new Permission { Description = "Publish or unpublish {0} for others", Name = "Publish_{0}", ImpliedBy = new[] { Permissions.PublishContent } };
private static readonly Permission PublishOwnContent = new Permission { Description = "Publish or unpublish {0}", Name = "PublishOwn_{0}", ImpliedBy = new[] { PublishContent, Permissions.PublishOwnContent } };
private static readonly Permission EditContent = new Permission { Description = "Edit {0} for others", Name = "Edit_{0}", ImpliedBy = new[] { PublishContent, Permissions.EditContent } };
private static readonly Permission EditOwnContent = new Permission { Description = "Edit {0}", Name = "EditOwn_{0}", ImpliedBy = new[] { CreateContent, EditContent, PublishOwnContent, Permissions.EditOwnContent } };
private static readonly Permission EditOwnContent = new Permission { Description = "Edit {0}", Name = "EditOwn_{0}", ImpliedBy = new[] { EditContent, PublishOwnContent, Permissions.EditOwnContent } };
private static readonly Permission DeleteContent = new Permission { Description = "Delete {0} for others", Name = "Delete_{0}", ImpliedBy = new[] { Permissions.DeleteContent } };
private static readonly Permission DeleteOwnContent = new Permission { Description = "Delete {0}", Name = "DeleteOwn_{0}", ImpliedBy = new[] { DeleteContent, Permissions.DeleteOwnContent } };
private static readonly Permission ViewContent = new Permission { Description = "View {0} by others", Name = "View_{0}", ImpliedBy = new[] { EditContent, Permissions.ViewContent } };
@@ -31,8 +30,7 @@ namespace Orchard.Core.Contents {
{Permissions.ViewContent.Name, ViewContent},
{Permissions.ViewOwnContent.Name, ViewOwnContent},
{Permissions.PreviewContent.Name, PreviewContent},
{Permissions.PreviewOwnContent.Name, PreviewOwnContent},
{Permissions.CreateContent.Name, CreateContent}
{Permissions.PreviewOwnContent.Name, PreviewOwnContent}
};
private readonly IContentDefinitionManager _contentDefinitionManager;

View File

@@ -2,8 +2,8 @@
AntiForgery: enabled
Author: The Orchard Team
Website: http://orchardproject.net
Version: 1.10.3
OrchardVersion: 1.10.3
Version: 1.10.1
OrchardVersion: 1.9
Description: The contents module enables the creation of custom content types.
Features:
Contents

View File

@@ -8,11 +8,10 @@ namespace Orchard.Core.Contents {
// Note - in code you should demand PublishContent, EditContent, or DeleteContent
// Do not demand the "Own" variations - those are applied automatically when you demand the main ones
public static readonly Permission CreateContent = new Permission { Description = "Create content", Name = "CreateContent" };
public static readonly Permission PublishContent = new Permission { Description = "Publish or unpublish content for others", Name = "PublishContent" };
public static readonly Permission PublishOwnContent = new Permission { Description = "Publish or unpublish own content", Name = "PublishOwnContent", ImpliedBy = new[] { PublishContent } };
public static readonly Permission EditContent = new Permission { Description = "Edit content for others", Name = "EditContent", ImpliedBy = new[] { PublishContent } };
public static readonly Permission EditOwnContent = new Permission { Description = "Edit own content", Name = "EditOwnContent", ImpliedBy = new[] { CreateContent, EditContent, PublishOwnContent } };
public static readonly Permission EditOwnContent = new Permission { Description = "Edit own content", Name = "EditOwnContent", ImpliedBy = new[] { EditContent, PublishOwnContent } };
public static readonly Permission DeleteContent = new Permission { Description = "Delete content for others", Name = "DeleteContent" };
public static readonly Permission DeleteOwnContent = new Permission { Description = "Delete own content", Name = "DeleteOwnContent", ImpliedBy = new[] { DeleteContent } };
public static readonly Permission ViewContent = new Permission { Description = "View all content", Name = "ViewContent", ImpliedBy = new[] { EditContent } };
@@ -36,8 +35,7 @@ namespace Orchard.Core.Contents {
ViewContent,
ViewOwnContent,
PreviewOwnContent,
PreviewContent,
CreateContent
PreviewContent
};
}
@@ -45,22 +43,22 @@ namespace Orchard.Core.Contents {
return new[] {
new PermissionStereotype {
Name = "Administrator",
Permissions = new[] {PublishContent,EditContent,DeleteContent,PreviewContent, CreateContent }
Permissions = new[] {PublishContent,EditContent,DeleteContent,PreviewContent}
},
new PermissionStereotype {
Name = "Editor",
Permissions = new[] {PublishContent,EditContent,DeleteContent, PreviewContent, CreateContent }
Permissions = new[] {PublishContent,EditContent,DeleteContent,PreviewContent}
},
new PermissionStereotype {
Name = "Moderator"
},
new PermissionStereotype {
Name = "Author",
Permissions = new[] {PublishOwnContent,EditOwnContent,DeleteOwnContent,PreviewOwnContent, CreateContent }
Permissions = new[] {PublishOwnContent,EditOwnContent,DeleteOwnContent,PreviewOwnContent}
},
new PermissionStereotype {
Name = "Contributor",
Permissions = new[] {EditOwnContent,PreviewOwnContent, CreateContent }
Permissions = new[] {EditOwnContent,PreviewOwnContent}
},
new PermissionStereotype {
Name = "Authenticated",

View File

@@ -1,36 +1,22 @@
@using Orchard.Core.Contents;
@using Orchard.Core.Contents.ViewModels;
@using Orchard.Security;
@using Orchard.Security.Permissions;
@using Orchard.Core.Contents.ViewModels;
@{
var typeDisplayName = Model.TypeDisplayName;
var pageTitle = T("Manage Content");
var createLinkText = T("Create New Content");
// if no specific type is selected, we assume we should show the "Create" button
var showCreateContentButton = string.IsNullOrWhiteSpace(typeDisplayName);
IAuthorizationService _authorizationService;
WorkContext.TryResolve<IAuthorizationService>(out _authorizationService);
if (!showCreateContentButton) {
// being here it means there is a specific type we are considering
if (!string.IsNullOrWhiteSpace(typeDisplayName)) {
pageTitle = T("Manage {0} Content", Html.Raw(typeDisplayName));
createLinkText = T("Create New {0}", Html.Raw(typeDisplayName));
var permission = DynamicPermissions
.CreateDynamicPermission(DynamicPermissions.PermissionTemplates[Permissions.CreateContent.Name], Model.ContentType);
if (_authorizationService.TryCheckAccess(permission, WorkContext.CurrentUser, null)) {
showCreateContentButton = true;
}
}
IEnumerable<string> cultures = Model.Options.Cultures;
Layout.Title = pageTitle.Text;
}
@if (showCreateContentButton) {
<div class="manage">
@Html.ActionLink(createLinkText.Text, "Create", new { Area = "Contents", Id = (string)Model.Options.SelectedFilter }, new { @class = "button primaryAction" })
</div>
}
@using (Html.BeginFormAntiForgeryPost()) {
<fieldset class="bulk-actions">
<label><input type="checkbox" class="check-all" />@T("Select all")</label>@T(" | ")
@@ -79,7 +65,7 @@
<button type="submit" name="submit.Filter" value="yes please">@T("Apply")</button>
</fieldset>
<fieldset class="contentItems bulk-items">
@Display(Model.ContentItems)
@Display(Model.ContentItems)
</fieldset>
@Display(Model.Pager)
}
@Display(Model.Pager)
}

View File

@@ -4,7 +4,7 @@
@{
ContentPart contentPart = Model.ContentPart;
}
@if (Authorizer.Authorize(Permissions.CreateContent, contentPart)) {
@if (Authorizer.Authorize(Permissions.EditContent, contentPart)) {
<a href="@Url.Action("Clone", "Admin", new { Id = Model.ContentItem.Id, ReturnUrl = Request.ToUrlString(), Area = "Contents" })" itemprop="UnsafeUrl">@T("Clone")</a>
@T(" | ")
}

View File

@@ -2,8 +2,8 @@
AntiForgery: enabled
Author: The Orchard Team
Website: http://orchardproject.net
Version: 1.10.3
OrchardVersion: 1.10.3
Version: 1.10.1
OrchardVersion: 1.9
Description: The dashboard module is providing the dashboard screen of the admininstration UI of the application.
FeatureDescription: Standard admin dashboard.
Category: Core

View File

@@ -2,8 +2,8 @@
AntiForgery: enabled
Author: The Orchard Team
Website: http://orchardproject.net
Version: 1.10.3
OrchardVersion: 1.10.3
Version: 1.10.1
OrchardVersion: 1.9
Description: The Feeds module is providing RSS feeds to content items.
FeatureDescription: RSS feeds for content items.
Category: Syndication

View File

@@ -15,12 +15,6 @@ 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)]
@@ -29,19 +23,13 @@ namespace Orchard.Core.Navigation.Controllers {
private readonly INavigationManager _navigationManager;
private readonly IEnumerable<IContentHandler> _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<IContentHandler> handlers) {
_contentManager = contentManager;
_transactionManager = transactionManager;
_menuService = menuService;
_menuManager = menuManager;
_navigationManager = navigationManager;
@@ -100,7 +88,7 @@ namespace Orchard.Core.Navigation.Controllers {
[HttpPost, ActionName("Index")]
public ActionResult IndexPOST(IList<MenuItemEntry> menuItemEntries, int? menuId) {
if (!Services.Authorizer.Authorize(Permissions.ManageMenus, (menuId.HasValue) ? _menuService.GetMenu(menuId.Value) : null, T("Couldn't manage the main menu")))
if (!Services.Authorizer.Authorize(Permissions.ManageMenus, T("Couldn't manage the main menu")))
return new HttpUnauthorizedResult();
// See https://github.com/OrchardCMS/Orchard/issues/948
@@ -138,11 +126,11 @@ namespace Orchard.Core.Navigation.Controllers {
[HttpPost]
public ActionResult Delete(int id) {
if (!Services.Authorizer.Authorize(Permissions.ManageMenus, T("Couldn't manage the main menu")))
return new HttpUnauthorizedResult();
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")))
return new HttpUnauthorizedResult();
if (menuPart != null) {
menuId = menuPart.Menu.Id;
@@ -153,7 +141,7 @@ namespace Orchard.Core.Navigation.Controllers {
.Select(x => x.As<MenuPart>())
.ToList();
foreach (var menuItem in menuItems.Concat(new[] { menuPart })) {
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") {
menuPart.Menu = null;
@@ -185,25 +173,25 @@ namespace Orchard.Core.Navigation.Controllers {
if (menuPart == null)
return HttpNotFound();
// load the menu
var menu = Services.ContentManager.Get(menuId);
if (menu == null)
return HttpNotFound();
try {
// filter the content items for this specific menu
menuPart.MenuPosition = Position.GetNext(_navigationManager.BuildMenu(menu));
menuPart.Menu = menu;
var model = Services.ContentManager.BuildEditor(menuPart);
return View(model);
}
catch (Exception exception) {
if (exception.IsFatal()) {
throw;
}
}
Logger.Error(T("Creating menu item failed: {0}", exception.Message).Text);
Services.Notifier.Error(T("Creating menu item failed: {0}", exception.Message));
@@ -215,85 +203,33 @@ namespace Orchard.Core.Navigation.Controllers {
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")))
return new HttpUnauthorizedResult();
var menuPart = Services.ContentManager.New<MenuPart>(id);
if (menuPart == null)
return HttpNotFound();
// load the menu
var menu = Services.ContentManager.Get(menuId);
if (menu == null)
return HttpNotFound();
menuPart.Menu = menu;
var model = Services.ContentManager.UpdateEditor(menuPart, this);
menuPart.MenuPosition = Position.GetNext(_navigationManager.BuildMenu(menu));
menuPart.Menu = menu;
Services.ContentManager.Create(menuPart);
if (!ModelState.IsValid) {
Services.TransactionManager.Cancel();
return View(model);
}
Services.Notifier.Information(T("Your {0} has been added.", menuPart.TypeDefinition.DisplayName));
return this.RedirectLocal(returnUrl, () => RedirectToAction("Index"));
}
public ActionResult Edit(int id) {
var contentItem = _contentManager.Get(id, VersionOptions.Latest);
if (contentItem == null)
return HttpNotFound();
if (!Services.Authorizer.Authorize(Permissions.ManageMenus, contentItem.Content.MenuPart.Menu, T("Couldn't manage the main menu")))
return new HttpUnauthorizedResult();
var model = _contentManager.BuildEditor(contentItem);
return View(model);
}
[HttpPost, ActionName("Edit")]
[Mvc.FormValueRequired("submit.Save")]
public ActionResult EditPOST(int id, string returnUrl) {
return EditPOST(id, returnUrl, contentItem => {
if (!contentItem.Has<IPublishingControlAspect>() && !contentItem.TypeDefinition.Settings.GetModel<ContentTypeSettings>().Draftable)
_contentManager.Publish(contentItem);
});
}
private ActionResult EditPOST(int id, string returnUrl, Action<ContentItem> conditionallyPublish) {
var contentItem = _contentManager.Get(id, VersionOptions.DraftRequired);
if (contentItem == null)
return HttpNotFound();
if (!Services.Authorizer.Authorize(Permissions.ManageMenus, contentItem.Content.MenuPart.Menu, T("Couldn't manage the main menu")))
return new HttpUnauthorizedResult();
string previousRoute = null;
if (contentItem.Has<IAliasAspect>()
&& !string.IsNullOrWhiteSpace(returnUrl)
&& Request.IsLocalUrl(returnUrl)
// only if the original returnUrl is the content itself
&& String.Equals(returnUrl, Url.ItemDisplayUrl(contentItem), StringComparison.OrdinalIgnoreCase)
) {
previousRoute = contentItem.As<IAliasAspect>().Path;
}
var model = _contentManager.UpdateEditor(contentItem, this);
if (!ModelState.IsValid) {
_transactionManager.Cancel();
return View("Edit", model);
}
conditionallyPublish(contentItem);
if (!string.IsNullOrWhiteSpace(returnUrl)
&& previousRoute != null
&& !String.Equals(contentItem.As<IAliasAspect>().Path, previousRoute, StringComparison.OrdinalIgnoreCase)) {
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));
return this.RedirectLocal(returnUrl, () => RedirectToAction("Edit", new RouteValueDictionary { { "Id", contentItem.Id } }));
}
}
}

View File

@@ -15,8 +15,7 @@ namespace Orchard.Core.Navigation.Drivers {
protected override DriverResult Editor(MenuItemPart part, dynamic shapeHelper) {
var currentUser = _workContextAccessor.GetContext().CurrentUser;
var menu = ((dynamic)part.ContentItem).MenuPart.Menu;
if (!_authorizationService.TryCheckAccess(Permissions.ManageMenus, currentUser, menu)) // tests if the current user has permissions to manage that specific menu
if (!_authorizationService.TryCheckAccess(Permissions.ManageMenus, currentUser, part))
return null;
return ContentShape("Parts_MenuItem_Edit",
@@ -25,8 +24,7 @@ namespace Orchard.Core.Navigation.Drivers {
protected override DriverResult Editor(MenuItemPart part, IUpdateModel updater, dynamic shapeHelper) {
var currentUser = _workContextAccessor.GetContext().CurrentUser;
var menu = ((dynamic)part.ContentItem).MenuPart.Menu;
if (!_authorizationService.TryCheckAccess(Permissions.ManageMenus, currentUser, menu)) // tests if the current user has permissions to manage that specific menu
if (!_authorizationService.TryCheckAccess(Permissions.ManageMenus, currentUser, part))
return null;
if (updater != null) {

View File

@@ -1,5 +1,4 @@
using System;
using System.Web.Routing;
using Orchard.ContentManagement;
using Orchard.ContentManagement.Handlers;
using Orchard.Core.Navigation.Models;
@@ -18,21 +17,21 @@ namespace Orchard.Core.Navigation.Handlers {
Filters.Add(StorageFilter.For(menuPartRepository));
OnInitializing<MenuPart>((ctx, x) => {
x.MenuText = String.Empty;
});
x.MenuText = String.Empty;
});
OnActivated<MenuPart>(PropertySetHandlers);
}
protected void PropertySetHandlers(ActivatedContentContext context, MenuPart menuPart) {
menuPart.MenuField.Setter(menu => {
if (menu == null || menu.ContentItem == null) {
if(menu == null || menu.ContentItem == null) {
menuPart.Record.MenuId = 0;
}
else {
menuPart.Record.MenuId = menu.ContentItem.Id;
menuPart.Record.MenuId = menu.ContentItem.Id;
}
return menu;
});
@@ -48,18 +47,6 @@ namespace Orchard.Core.Navigation.Handlers {
string stereotype;
if (context.ContentItem.TypeDefinition.Settings.TryGetValue("Stereotype", out stereotype) && stereotype == "MenuItem") {
context.Metadata.DisplayText = part.MenuText;
context.Metadata.EditorRouteValues = new RouteValueDictionary {
{"Area", "Navigation"},
{"Controller", "Admin"},
{"Action", "Edit"},
{"Id", context.ContentItem.Id}
};
context.Metadata.RemoveRouteValues = new RouteValueDictionary {
{"Area", "Navigation"},
{"Controller", "Admin"},
{"Action", "Delete"},
{"Id", context.ContentItem.Id}
};
}
}
}

View File

@@ -177,13 +177,5 @@ namespace Orchard.Core.Navigation {
return 6;
}
public int UpdateFrom6() {
ContentDefinitionManager.AlterTypeDefinition("ShapeMenuItem", cfg => cfg
.WithIdentity()
);
return 7;
}
}
}

View File

@@ -2,8 +2,8 @@
AntiForgery: enabled
Author: The Orchard Team
Website: http://orchardproject.net
Version: 1.10.3
OrchardVersion: 1.10.3
Version: 1.10.1
OrchardVersion: 1.9
Description: The navigation module creates and manages a simple navigation menu for the front-end of the application and allows you to add content items to the admin menu.
FeatureDescription: Menu management.
Category: Core

View File

@@ -1,15 +0,0 @@
@{
var typeDisplayName = Model.ContentItem.TypeDefinition.DisplayName;
var pageTitle = T("Edit Menu Item");
if (!string.IsNullOrWhiteSpace(typeDisplayName)) {
pageTitle = T("Edit {0}", typeDisplayName);
}
Layout.Title = pageTitle;
}
@using (Html.BeginFormAntiForgeryPost(Url.Action("Edit"), FormMethod.Post, new { enctype = "multipart/form-data", @class= "no-multisubmit" })) {
@Html.ValidationSummary()
// Model is a Shape, calling Display() so that it is rendered using the most specific template for its Shape type
@Display(Model)
}

View File

@@ -116,7 +116,7 @@
<span class="navigation-actions">
<input type="hidden" name="@Html.NameOf(m => m.MenuItemEntries[i].MenuItemId)" value="@menuPartEntry.MenuItemId" />
@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" })
@Html.ActionLink(T("Delete").Text, "Delete", new { id = menuPartEntry.MenuItemId }, new { @class = "remove", itemprop = "RemoveUrl UnsafeUrl" })
</span>
</div>

View File

@@ -5,7 +5,7 @@
@if (!Model.ContentItem.TypeDefinition.Settings.ContainsKey("Stereotype") || Model.ContentItem.TypeDefinition.Settings["Stereotype"] != "MenuItem") {
<fieldset>
@Html.EditorFor(m => m.OnMenu)
<label for="@Html.FieldIdFor(m => m.OnMenu)" class="forcheckbox">@T("Show on a menu")</label>
<div data-controllerid="@Html.FieldIdFor(m => m.OnMenu)" class="">
@@ -24,13 +24,13 @@
}
else {
<fieldset>
<label for="MenuText">@T("Menu text")</label>
@Html.TextBoxFor(m => m.MenuText, new { @class = "text medium", autofocus = "autofocus" })
<span class="hint">@T("The text that should appear in the menu.")</span>
@Html.Hidden(Html.NameOf(m => m.OnMenu), true)
@Html.Hidden(Html.NameOf(m => m.CurrentMenuId), !string.IsNullOrWhiteSpace(Request["menuId"]) ? Request["menuId"] : Model.CurrentMenuId.ToString())
@Html.HiddenFor(m => m.OnMenu, true)
@Html.HiddenFor(m => m.CurrentMenuId, Request["menuId"])
</fieldset>
}

View File

@@ -35,7 +35,6 @@
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<LangVersion>latest</LangVersion>
<CodeAnalysisRuleSet>..\..\OrchardBasicCorrectness.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>false</Prefer32Bit>
<UseVSHostingProcess>false</UseVSHostingProcess>
@@ -47,15 +46,10 @@
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<LangVersion>latest</LangVersion>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\lib\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.CSharp" />
<Reference Include="Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll</HintPath>
@@ -381,7 +375,7 @@
<ProjectReference Include="..\..\Orchard\Orchard.Framework.csproj">
<Project>{2D1D92BB-4555-4CBE-8D0E-63563D6CE4C6}</Project>
<Name>Orchard.Framework</Name>
<Private>$(MvcBuildViews)</Private>
<Private>False</Private>
</ProjectReference>
</ItemGroup>
<ItemGroup>
@@ -403,6 +397,7 @@
</ItemGroup>
<ItemGroup>
<Folder Include="App_Data\" />
<Folder Include="Views\Gamma\" />
</ItemGroup>
<ItemGroup>
<Content Include="Contents\Views\Content.cshtml" />
@@ -612,9 +607,6 @@
<ItemGroup>
<Content Include="packages.config" />
</ItemGroup>
<ItemGroup>
<Content Include="Navigation\Views\Admin\Edit.cshtml" />
</ItemGroup>
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
@@ -639,7 +631,7 @@
-->
</Target>
<Target Name="AfterBuildCompiler" Condition="'$(MvcBuildViews)'=='true'">
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(ProjectDir)" />
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(ProjectDir)\..\$(ProjectName)" />
</Target>
<ProjectExtensions>
<VisualStudio>
@@ -653,7 +645,7 @@
</IISUrl>
<NTLMAuthentication>False</NTLMAuthentication>
<UseCustomServer>True</UseCustomServer>
<CustomServerUrl>https://github.com/OrchardCMS/Orchard</CustomServerUrl>
<CustomServerUrl>http://orchard.codeplex.com</CustomServerUrl>
<SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
</WebProjectProperties>
</FlavorProperties>

View File

@@ -30,6 +30,6 @@ using System.Security;
//
// You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below:
[assembly: AssemblyVersion("1.10.3")]
[assembly: AssemblyFileVersion("1.10.3")]
[assembly: AssemblyVersion("1.10.1")]
[assembly: AssemblyFileVersion("1.10.1")]

View File

@@ -2,8 +2,8 @@
AntiForgery: enabled
Author: The Orchard Team
Website: http://orchardproject.net
Version: 1.10.3
OrchardVersion: 1.10.3
Version: 1.10.1
OrchardVersion: 1.9
Description: The dashboard module is providing the reports screen of the application.
FeatureDescription: Reports management.
Category: Core

View File

@@ -2,8 +2,8 @@
AntiForgery: enabled
Author: The Orchard Team
Website: http://orchardproject.net
Version: 1.10.3
OrchardVersion: 1.10.3
Version: 1.10.1
OrchardVersion: 1.9
Description: The scheduling module enables background task scheduling.
FeatureDescription: Scheduled background tasks.
Category: Core

View File

@@ -189,7 +189,7 @@ namespace Orchard.Core.Settings.Metadata {
private void Apply(ContentTypeDefinition model, ContentTypeDefinitionRecord record) {
record.DisplayName = model.DisplayName;
record.Settings = Compose(_settingsFormatter.Map(model.Settings));
record.Settings = _settingsFormatter.Map(model.Settings).ToString();
var toRemove = record.ContentTypePartDefinitionRecords
.Where(partDefinitionRecord => model.Parts.All(part => partDefinitionRecord.ContentPartDefinitionRecord.Name != part.PartDefinition.Name))
@@ -215,7 +215,7 @@ namespace Orchard.Core.Settings.Metadata {
}
private void Apply(ContentPartDefinition model, ContentPartDefinitionRecord record) {
record.Settings = Compose(_settingsFormatter.Map(model.Settings));
record.Settings = _settingsFormatter.Map(model.Settings).ToString();
var toRemove = record.ContentPartFieldDefinitionRecords
.Where(partFieldDefinitionRecord => model.Fields.All(partField => partFieldDefinitionRecord.Name != partField.Name))

View File

@@ -2,8 +2,8 @@
AntiForgery: enabled
Author: The Orchard Team
Website: http://orchardproject.net
Version: 1.10.3
OrchardVersion: 1.10.3
Version: 1.10.1
OrchardVersion: 1.9
Description: The settings module creates site settings that other modules can contribute to.
FeatureDescription: Site settings.
Category: Core

View File

@@ -43,7 +43,7 @@ namespace Orchard.Core.Settings.State {
};
}
private ShellStateRecord GetExistingOrNewShellStateRecord() {
//Fix for https://github.com/OrchardCMS/Orchard/issues/6075 change to get ensure ShellState record only retrieved once.
//Fix for https://orchard.codeplex.com/workitem/21176 / https://github.com/OrchardCMS/Orchard/issues/6075 change to get ensure ShellState record only retrieved once.
var shellStateRecordId = _cacheManager.Get("ShellStateRecordId", ctx => {
var shellState = _shellStateRepository.Table.FirstOrDefault();

View File

@@ -2,8 +2,8 @@
AntiForgery: enabled
Author: The Orchard Team
Website: http://orchardproject.net
Version: 1.10.3
OrchardVersion: 1.10.3
Version: 1.10.1
OrchardVersion: 1.9
Description: The shapes module contains core shape templates and display hooks.
FeatureDescription: Core shape templates and display hooks.
Category: Core

View File

@@ -2,8 +2,8 @@
AntiForgery: enabled
Author: The Orchard Team
Website: http://orchardproject.net
Version: 1.10.3
OrchardVersion: 1.10.3
Version: 1.10.1
OrchardVersion: 1.9
Description: The title module enables content items to have titles.
FeatureDescription: Title content part.
Category: Core

View File

@@ -21,15 +21,6 @@
</namespaces>
</pages>
</system.web.webPages.razor>
<!-- Registering Roslyn as a compiler for Razor IntelliSense. -->
<appSettings>
<add key="aspnet:RoslynCompilerLocation" value="..\bin\roslyn" />
</appSettings>
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:latest" />
</compilers>
</system.codedom>
<system.web>
<compilation targetFramework="4.5.2">
<assemblies>

View File

@@ -2,8 +2,8 @@
AntiForgery: enabled
Author: The Orchard Team
Website: http://orchardproject.net
Version: 1.10.3
OrchardVersion: 1.10.3
Version: 1.10.1
OrchardVersion: 1.9
Description: The XmlRpc module enables creation of contents from client applications such as LiveWriter.
FeatureDescription: XML-RPC opt-in implementation.
Category: Content Publishing

View File

@@ -3,6 +3,5 @@
<package id="Microsoft.AspNet.Mvc" version="5.2.3" targetFramework="net452" />
<package id="Microsoft.AspNet.Razor" version="3.2.3" targetFramework="net452" />
<package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net452" />
<package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="2.0.1" targetFramework="net452" />
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net452" />
</packages>

Some files were not shown because too many files have changed in this diff Show More