From 9877d8488f7defc8c58e83ce005109e2151a182a Mon Sep 17 00:00:00 2001 From: Stanley Goldman Date: Thu, 31 Jul 2014 14:36:30 -0700 Subject: [PATCH] #20245: Fixing control wrappers permissions Work Item: 20245 --- .../Views/Content.ControlWrapper.cshtml | 8 ++++++-- .../Views/Widget.ControlWrapper.cshtml | 20 +++++++++++-------- .../Mvc/ViewEngines/Razor/WebViewPage.cs | 4 ++++ 3 files changed, 22 insertions(+), 10 deletions(-) diff --git a/src/Orchard.Web/Core/Contents/Views/Content.ControlWrapper.cshtml b/src/Orchard.Web/Core/Contents/Views/Content.ControlWrapper.cshtml index 1d5f1cee5..fbe37d8a8 100644 --- a/src/Orchard.Web/Core/Contents/Views/Content.ControlWrapper.cshtml +++ b/src/Orchard.Web/Core/Contents/Views/Content.ControlWrapper.cshtml @@ -1,8 +1,12 @@ @using Orchard.ContentManagement; @using Orchard.Core.Contents; -@if (AuthorizedFor(Permissions.EditContent) && Model.ContentItem.Id > 0) { +@{ + var contentItem = (ContentItem)Model.ContentItem; + var authorizedFor = AuthorizedFor(Permissions.EditContent, contentItem); +} +@if (authorizedFor && Model.ContentItem.Id > 0) {
-
@Html.ItemEditLinkWithReturnUrl(T("Edit").Text, (ContentItem)Model.ContentItem)
+
@Html.ItemEditLinkWithReturnUrl(T("Edit").Text, contentItem)
@Display(Model.Child)
} diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/Views/Widget.ControlWrapper.cshtml b/src/Orchard.Web/Modules/Orchard.Widgets/Views/Widget.ControlWrapper.cshtml index 4454fccc3..acf2c108d 100644 --- a/src/Orchard.Web/Modules/Orchard.Widgets/Views/Widget.ControlWrapper.cshtml +++ b/src/Orchard.Web/Modules/Orchard.Widgets/Views/Widget.ControlWrapper.cshtml @@ -1,11 +1,15 @@ @using Orchard.ContentManagement; @using Orchard.Widgets; -@if (AuthorizedFor(Permissions.ManageWidgets)) { -
-
@Html.ItemEditLinkWithReturnUrl(T("Edit").Text, (ContentItem)Model.ContentItem)
- @Display(Model.Child) -
-} -else { - @Display(Model.Child) +@{ + var contentItem = (ContentItem)Model.ContentItem; + if (AuthorizedFor(Permissions.ManageWidgets, contentItem)) { +
+
+ @Html.ItemEditLinkWithReturnUrl(T("Edit").Text, contentItem)
+ @Display(Model.Child) +
+ } + else { + @Display(Model.Child) + } } \ No newline at end of file diff --git a/src/Orchard/Mvc/ViewEngines/Razor/WebViewPage.cs b/src/Orchard/Mvc/ViewEngines/Razor/WebViewPage.cs index 5ab9a5f73..6dda3ca00 100644 --- a/src/Orchard/Mvc/ViewEngines/Razor/WebViewPage.cs +++ b/src/Orchard/Mvc/ViewEngines/Razor/WebViewPage.cs @@ -174,6 +174,10 @@ namespace Orchard.Mvc.ViewEngines.Razor { return Authorizer.Authorize(permission); } + public bool AuthorizedFor(Permission permission, IContent content) { + return Authorizer.Authorize(permission, content); + } + public bool HasText(object thing) { return !string.IsNullOrWhiteSpace(Convert.ToString(thing)); }