diff --git a/src/Orchard.Web/Core/Common/Mvc/Html/AntiForgeryTokenExtensions.cs b/src/Orchard.Web/Core/Common/Mvc/Html/AntiForgeryTokenExtensions.cs
deleted file mode 100644
index 6dff6a9c0..000000000
--- a/src/Orchard.Web/Core/Common/Mvc/Html/AntiForgeryTokenExtensions.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-using System.Web.Mvc;
-using Orchard.ContentManagement;
-using Orchard.Core.Settings.Models;
-using Orchard.Mvc.Html;
-using Orchard.Settings;
-
-namespace Orchard.Core.Common.Mvc.Html {
- public static class AntiForgeryTokenExtensions {
- public static MvcHtmlString AntiForgeryTokenOrchard(this HtmlHelper htmlHelper)
- {
- var siteSalt = htmlHelper.Resolve().GetSiteSettings().ContentItem.As().Record.SiteSalt;
- return htmlHelper.AntiForgeryToken(siteSalt);
- }
- }
-}
\ No newline at end of file
diff --git a/src/Orchard.Web/Core/Common/Mvc/Html/BeginFormExtensions.cs b/src/Orchard.Web/Core/Common/Mvc/Html/BeginFormExtensions.cs
deleted file mode 100644
index 490af896a..000000000
--- a/src/Orchard.Web/Core/Common/Mvc/Html/BeginFormExtensions.cs
+++ /dev/null
@@ -1,35 +0,0 @@
-using System.Collections.Generic;
-using System.Web.Mvc;
-using System.Web.Mvc.Html;
-using System.Web.Routing;
-
-namespace Orchard.Core.Common.Mvc.Html {
- public static class BeginFormExtensions {
- public static MvcForm BeginFormAntiForgeryPost(this HtmlHelper htmlHelper)
- {
- return htmlHelper.BeginFormAntiForgeryPost(htmlHelper.ViewContext.HttpContext.Request.RawUrl, FormMethod.Post, new RouteValueDictionary());
- }
- //TODO: (erikpo) Uncomment when needed (not currently needed)
- //public static MvcForm BeginFormAntiForgeryPost(this HtmlHelper htmlHelper, string formAction) {
- // return htmlHelper.BeginFormAntiForgeryPost(formAction, FormMethod.Post, new RouteValueDictionary());
- //}
- //public static MvcForm BeginFormAntiForgeryPost(this HtmlHelper htmlHelper, string formAction, FormMethod formMethod) {
- // return htmlHelper.BeginFormAntiForgeryPost(formAction, formMethod, new RouteValueDictionary());
- //}
- //public static MvcForm BeginFormAntiForgeryPost(this HtmlHelper htmlHelper, string formAction, FormMethod formMethod, object htmlAttributes) {
- // return htmlHelper.BeginFormAntiForgeryPost(formAction, formMethod, new RouteValueDictionary(htmlAttributes));
- //}
- public static MvcForm BeginFormAntiForgeryPost(this HtmlHelper htmlHelper, string formAction, FormMethod formMethod, IDictionary htmlAttributes)
- {
- TagBuilder tagBuilder = new TagBuilder("form");
-
- tagBuilder.MergeAttributes(htmlAttributes);
- tagBuilder.MergeAttribute("action", formAction);
- tagBuilder.MergeAttribute("method", HtmlHelper.GetFormMethodString(formMethod), true);
-
- htmlHelper.ViewContext.HttpContext.Response.Output.Write(tagBuilder.ToString(TagRenderMode.StartTag));
-
- return new MvcFormAntiForgeryPost(htmlHelper);
- }
- }
-}
\ No newline at end of file
diff --git a/src/Orchard.Web/Core/Common/Permissions.cs b/src/Orchard.Web/Core/Common/Permissions.cs
index db49009fc..dcade7f79 100644
--- a/src/Orchard.Web/Core/Common/Permissions.cs
+++ b/src/Orchard.Web/Core/Common/Permissions.cs
@@ -4,17 +4,13 @@ using Orchard.Security.Permissions;
namespace Orchard.Core.Common {
public class Permissions : IPermissionProvider {
public static readonly Permission ChangeOwner = new Permission { Name = "ChangeOwner", Description = "Change the owner of content items" };
- public static readonly Permission AccessAdmin = new Permission { Name = "AccessAdmin", Description = "Access the application admin area" };
public string PackageName {
get { return "Common"; }
}
public IEnumerable GetPermissions() {
- return new[] {
- ChangeOwner,
- AccessAdmin
- };
+ return new[] { ChangeOwner };
}
}
}
diff --git a/src/Orchard.Web/Core/Orchard.Core.csproj b/src/Orchard.Web/Core/Orchard.Core.csproj
index a7b515d17..d0d9add8d 100644
--- a/src/Orchard.Web/Core/Orchard.Core.csproj
+++ b/src/Orchard.Web/Core/Orchard.Core.csproj
@@ -61,11 +61,6 @@
-
-
-
-
-
diff --git a/src/Orchard.Web/Core/Settings/Models/SiteSettings.cs b/src/Orchard.Web/Core/Settings/Models/SiteSettings.cs
index 67bdec4be..80d0509c8 100644
--- a/src/Orchard.Web/Core/Settings/Models/SiteSettings.cs
+++ b/src/Orchard.Web/Core/Settings/Models/SiteSettings.cs
@@ -14,6 +14,12 @@ namespace Orchard.Core.Settings.Models {
get { return Record.SiteName; }
set { Record.SiteName = value; }
}
+ public string SiteSalt {
+ get { return Record.SiteSalt; }
+ }
+ public string SiteUrl {
+ get { return Record.SiteUrl; }
+ }
public string SuperUser {
get { return Record.SuperUser; }
set { Record.SuperUser = value; }
diff --git a/src/Orchard.Web/Core/Web.config b/src/Orchard.Web/Core/Web.config
index 0f82009b2..8bfa88317 100644
--- a/src/Orchard.Web/Core/Web.config
+++ b/src/Orchard.Web/Core/Web.config
@@ -73,7 +73,6 @@
-
diff --git a/src/Orchard.Web/Packages/Orchard.Blogs/Web.config b/src/Orchard.Web/Packages/Orchard.Blogs/Web.config
index 2616786c3..b1c399e16 100644
--- a/src/Orchard.Web/Packages/Orchard.Blogs/Web.config
+++ b/src/Orchard.Web/Packages/Orchard.Blogs/Web.config
@@ -73,7 +73,6 @@
-
diff --git a/src/Orchard.Web/Packages/Orchard.CmsPages/Web.config b/src/Orchard.Web/Packages/Orchard.CmsPages/Web.config
index 0f82009b2..8bfa88317 100644
--- a/src/Orchard.Web/Packages/Orchard.CmsPages/Web.config
+++ b/src/Orchard.Web/Packages/Orchard.CmsPages/Web.config
@@ -73,7 +73,6 @@
-
diff --git a/src/Orchard.Web/Packages/Orchard.Comments/Orchard.Comments.csproj b/src/Orchard.Web/Packages/Orchard.Comments/Orchard.Comments.csproj
index 74286b125..e82617745 100644
--- a/src/Orchard.Web/Packages/Orchard.Comments/Orchard.Comments.csproj
+++ b/src/Orchard.Web/Packages/Orchard.Comments/Orchard.Comments.csproj
@@ -35,10 +35,6 @@
False
..\..\..\..\lib\joel.net.akismet\Joel.Net.Akismet.dll
-
- False
- ..\..\Core\bin\Orchard.Core.dll
-
diff --git a/src/Orchard.Web/Packages/Orchard.Comments/Web.config b/src/Orchard.Web/Packages/Orchard.Comments/Web.config
index e959ef64e..b4a872dbe 100644
--- a/src/Orchard.Web/Packages/Orchard.Comments/Web.config
+++ b/src/Orchard.Web/Packages/Orchard.Comments/Web.config
@@ -76,7 +76,6 @@
-
diff --git a/src/Orchard.Web/Packages/Orchard.Media/Web.config b/src/Orchard.Web/Packages/Orchard.Media/Web.config
index e959ef64e..b4a872dbe 100644
--- a/src/Orchard.Web/Packages/Orchard.Media/Web.config
+++ b/src/Orchard.Web/Packages/Orchard.Media/Web.config
@@ -76,7 +76,6 @@
-
diff --git a/src/Orchard.Web/Packages/Orchard.Roles/Orchard.Roles.csproj b/src/Orchard.Web/Packages/Orchard.Roles/Orchard.Roles.csproj
index c365f9925..ae769ef91 100644
--- a/src/Orchard.Web/Packages/Orchard.Roles/Orchard.Roles.csproj
+++ b/src/Orchard.Web/Packages/Orchard.Roles/Orchard.Roles.csproj
@@ -31,10 +31,6 @@
4
-
- False
- ..\..\Core\bin\Orchard.Core.dll
-
diff --git a/src/Orchard.Web/Packages/Orchard.Roles/Web.config b/src/Orchard.Web/Packages/Orchard.Roles/Web.config
index 0f82009b2..8bfa88317 100644
--- a/src/Orchard.Web/Packages/Orchard.Roles/Web.config
+++ b/src/Orchard.Web/Packages/Orchard.Roles/Web.config
@@ -73,7 +73,6 @@
-
diff --git a/src/Orchard.Web/Packages/Orchard.Sandbox/Web.config b/src/Orchard.Web/Packages/Orchard.Sandbox/Web.config
index 0f82009b2..8bfa88317 100644
--- a/src/Orchard.Web/Packages/Orchard.Sandbox/Web.config
+++ b/src/Orchard.Web/Packages/Orchard.Sandbox/Web.config
@@ -73,7 +73,6 @@
-
diff --git a/src/Orchard.Web/Packages/Orchard.Tags/Orchard.Tags.csproj b/src/Orchard.Web/Packages/Orchard.Tags/Orchard.Tags.csproj
index ecde3cb8d..56e9dcf4a 100644
--- a/src/Orchard.Web/Packages/Orchard.Tags/Orchard.Tags.csproj
+++ b/src/Orchard.Web/Packages/Orchard.Tags/Orchard.Tags.csproj
@@ -31,10 +31,6 @@
4
-
- False
- ..\..\Core\bin\Orchard.Core.dll
-
diff --git a/src/Orchard.Web/Packages/Orchard.Tags/Web.config b/src/Orchard.Web/Packages/Orchard.Tags/Web.config
index e959ef64e..b4a872dbe 100644
--- a/src/Orchard.Web/Packages/Orchard.Tags/Web.config
+++ b/src/Orchard.Web/Packages/Orchard.Tags/Web.config
@@ -76,7 +76,6 @@
-
diff --git a/src/Orchard.Web/Packages/Orchard.Users/Orchard.Users.csproj b/src/Orchard.Web/Packages/Orchard.Users/Orchard.Users.csproj
index 77f26cc2e..764268622 100644
--- a/src/Orchard.Web/Packages/Orchard.Users/Orchard.Users.csproj
+++ b/src/Orchard.Web/Packages/Orchard.Users/Orchard.Users.csproj
@@ -31,10 +31,6 @@
4
-
- False
- ..\..\Core\bin\Orchard.Core.dll
-
diff --git a/src/Orchard.Web/Packages/Orchard.Users/Web.config b/src/Orchard.Web/Packages/Orchard.Users/Web.config
index 0f82009b2..8bfa88317 100644
--- a/src/Orchard.Web/Packages/Orchard.Users/Web.config
+++ b/src/Orchard.Web/Packages/Orchard.Users/Web.config
@@ -73,7 +73,6 @@
-
diff --git a/src/Orchard.Web/Web.config b/src/Orchard.Web/Web.config
index b48f82b45..7fbdfddaa 100644
--- a/src/Orchard.Web/Web.config
+++ b/src/Orchard.Web/Web.config
@@ -127,7 +127,6 @@
-
diff --git a/src/Orchard.Web/Core/Common/Mvc/Filters/AdminFilter.cs b/src/Orchard/Mvc/Filters/AdminFilter.cs
similarity index 74%
rename from src/Orchard.Web/Core/Common/Mvc/Filters/AdminFilter.cs
rename to src/Orchard/Mvc/Filters/AdminFilter.cs
index bf45373ff..c8bdc068b 100644
--- a/src/Orchard.Web/Core/Common/Mvc/Filters/AdminFilter.cs
+++ b/src/Orchard/Mvc/Filters/AdminFilter.cs
@@ -1,13 +1,10 @@
using System.Globalization;
using System.IO;
using System.Web.Mvc;
-using Orchard.ContentManagement;
-using Orchard.Core.Settings.Models;
-using Orchard.Mvc.Filters;
using Orchard.Security;
using Orchard.Settings;
-namespace Orchard.Core.Common.Mvc.Filters {
+namespace Orchard.Mvc.Filters {
public class AdminFilter : FilterProvider, IActionFilter
{
private readonly IAuthorizer _authorizer;
@@ -21,8 +18,7 @@ namespace Orchard.Core.Common.Mvc.Filters {
public void OnActionExecuting(ActionExecutingContext filterContext)
{
- //todo: (heskew) get at the SiteUrl the "right" way. or is this the right way :|
- var siteUrl = _siteService.GetSiteSettings().ContentItem.As().Record.SiteUrl;
+ var siteUrl = _siteService.GetSiteSettings().SiteUrl;
//todo: (heskew) get at the admin path in a less hacky way
if (filterContext.HttpContext.Request.RawUrl.StartsWith(Path.Combine(siteUrl, "admin").Replace("\\", "/"), true, CultureInfo.InvariantCulture)
&& !_authorizer.Authorize(Permissions.AccessAdmin, "Can't access the admin")) {
diff --git a/src/Orchard.Web/Core/Common/Mvc/Filters/AntiForgeryAuthorizationFilter.cs b/src/Orchard/Mvc/Filters/AntiForgeryAuthorizationFilter.cs
similarity index 73%
rename from src/Orchard.Web/Core/Common/Mvc/Filters/AntiForgeryAuthorizationFilter.cs
rename to src/Orchard/Mvc/Filters/AntiForgeryAuthorizationFilter.cs
index 387f5f6f7..5aa3b7f05 100644
--- a/src/Orchard.Web/Core/Common/Mvc/Filters/AntiForgeryAuthorizationFilter.cs
+++ b/src/Orchard/Mvc/Filters/AntiForgeryAuthorizationFilter.cs
@@ -1,10 +1,7 @@
using System.Web.Mvc;
-using Orchard.ContentManagement;
-using Orchard.Core.Settings.Models;
-using Orchard.Mvc.Filters;
using Orchard.Settings;
-namespace Orchard.Core.Common.Mvc.Filters {
+namespace Orchard.Mvc.Filters {
public class AntiForgeryAuthorizationFilter : FilterProvider, IAuthorizationFilter {
private readonly ISiteService _siteService;
@@ -16,7 +13,7 @@ namespace Orchard.Core.Common.Mvc.Filters {
if (!(filterContext.HttpContext.Request.HttpMethod == "POST" && filterContext.RequestContext.HttpContext.Request.IsAuthenticated))
return;
- var siteSalt = _siteService.GetSiteSettings().ContentItem.As().Record.SiteSalt;
+ var siteSalt = _siteService.GetSiteSettings().SiteSalt;
ValidateAntiForgeryTokenAttribute validator = new ValidateAntiForgeryTokenAttribute { Salt = siteSalt };
validator.OnAuthorization(filterContext);
diff --git a/src/Orchard/Mvc/Html/HtmlHelperExtensions.cs b/src/Orchard/Mvc/Html/HtmlHelperExtensions.cs
index 0a7c297d0..e8ea821f4 100644
--- a/src/Orchard/Mvc/Html/HtmlHelperExtensions.cs
+++ b/src/Orchard/Mvc/Html/HtmlHelperExtensions.cs
@@ -6,6 +6,7 @@ using System.Text;
using System.Web.Mvc;
using System.Web.Mvc.Html;
using System.Web.Routing;
+using Orchard.Settings;
using Orchard.Utility;
namespace Orchard.Mvc.Html {
@@ -176,5 +177,46 @@ namespace Orchard.Mvc.Html {
}
#endregion
+
+ #region BeginFormAntiForgeryPost
+
+ public static MvcForm BeginFormAntiForgeryPost(this HtmlHelper htmlHelper) {
+ return htmlHelper.BeginFormAntiForgeryPost(htmlHelper.ViewContext.HttpContext.Request.RawUrl, FormMethod.Post, new RouteValueDictionary());
+ }
+
+ //TODO: (erikpo) Uncomment when needed (not currently needed)
+ //public static MvcForm BeginFormAntiForgeryPost(this HtmlHelper htmlHelper, string formAction) {
+ // return htmlHelper.BeginFormAntiForgeryPost(formAction, FormMethod.Post, new RouteValueDictionary());
+ //}
+ //public static MvcForm BeginFormAntiForgeryPost(this HtmlHelper htmlHelper, string formAction, FormMethod formMethod) {
+ // return htmlHelper.BeginFormAntiForgeryPost(formAction, formMethod, new RouteValueDictionary());
+ //}
+ //public static MvcForm BeginFormAntiForgeryPost(this HtmlHelper htmlHelper, string formAction, FormMethod formMethod, object htmlAttributes) {
+ // return htmlHelper.BeginFormAntiForgeryPost(formAction, formMethod, new RouteValueDictionary(htmlAttributes));
+ //}
+
+ public static MvcForm BeginFormAntiForgeryPost(this HtmlHelper htmlHelper, string formAction, FormMethod formMethod, IDictionary htmlAttributes) {
+ TagBuilder tagBuilder = new TagBuilder("form");
+
+ tagBuilder.MergeAttributes(htmlAttributes);
+ tagBuilder.MergeAttribute("action", formAction);
+ tagBuilder.MergeAttribute("method", HtmlHelper.GetFormMethodString(formMethod), true);
+
+ htmlHelper.ViewContext.HttpContext.Response.Output.Write(tagBuilder.ToString(TagRenderMode.StartTag));
+
+ return new MvcFormAntiForgeryPost(htmlHelper);
+ }
+
+ #endregion
+
+ #region AntiForgeryTokenOrchard
+
+ public static MvcHtmlString AntiForgeryTokenOrchard(this HtmlHelper htmlHelper)
+ {
+ var siteSalt = htmlHelper.Resolve().GetSiteSettings().SiteSalt;
+ return htmlHelper.AntiForgeryToken(siteSalt);
+ }
+
+ #endregion
}
}
diff --git a/src/Orchard.Web/Core/Common/Mvc/Html/MvcFormAntiForgeryPost.cs b/src/Orchard/Mvc/Html/MvcFormAntiForgeryPost.cs
similarity index 89%
rename from src/Orchard.Web/Core/Common/Mvc/Html/MvcFormAntiForgeryPost.cs
rename to src/Orchard/Mvc/Html/MvcFormAntiForgeryPost.cs
index b1b90b66d..bcc26fa91 100644
--- a/src/Orchard.Web/Core/Common/Mvc/Html/MvcFormAntiForgeryPost.cs
+++ b/src/Orchard/Mvc/Html/MvcFormAntiForgeryPost.cs
@@ -1,7 +1,7 @@
using System.Web.Mvc;
using System.Web.Mvc.Html;
-namespace Orchard.Core.Common.Mvc.Html {
+namespace Orchard.Mvc.Html {
public class MvcFormAntiForgeryPost : MvcForm {
private readonly HtmlHelper _htmlHelper;
diff --git a/src/Orchard/Orchard.csproj b/src/Orchard/Orchard.csproj
index 315825ab6..ae213ed4a 100644
--- a/src/Orchard/Orchard.csproj
+++ b/src/Orchard/Orchard.csproj
@@ -184,8 +184,12 @@
+
+
+
+
diff --git a/src/Orchard/Permissions.cs b/src/Orchard/Permissions.cs
new file mode 100644
index 000000000..232746c93
--- /dev/null
+++ b/src/Orchard/Permissions.cs
@@ -0,0 +1,16 @@
+using System.Collections.Generic;
+using Orchard.Security.Permissions;
+
+namespace Orchard {
+ public class Permissions : IPermissionProvider {
+ public static readonly Permission AccessAdmin = new Permission { Name = "AccessAdmin", Description = "Access the application admin area" };
+
+ public string PackageName {
+ get { return "Orchard"; }
+ }
+
+ public IEnumerable GetPermissions() {
+ return new[] { AccessAdmin };
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Orchard/Settings/ISite.cs b/src/Orchard/Settings/ISite.cs
index 10d6bcefe..17c9a7465 100644
--- a/src/Orchard/Settings/ISite.cs
+++ b/src/Orchard/Settings/ISite.cs
@@ -7,6 +7,8 @@ namespace Orchard.Settings {
public interface ISite : IContent {
string PageTitleSeparator { get; }
string SiteName { get; }
+ string SiteSalt { get; }
+ string SiteUrl { get; }
string SuperUser { get; }
}
}