mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2026-02-09 09:16:41 +08:00
Added permission checks.
This commit is contained in:
@@ -1,6 +1,8 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Web.Mvc;
|
using System.Web.Mvc;
|
||||||
using Orchard.ContentManagement;
|
using Orchard.ContentManagement;
|
||||||
|
using Orchard.ContentManagement.Aspects;
|
||||||
|
using Orchard.Core.Contents.Settings;
|
||||||
using Orchard.Dashboards.Services;
|
using Orchard.Dashboards.Services;
|
||||||
using Orchard.Localization;
|
using Orchard.Localization;
|
||||||
using Orchard.Mvc;
|
using Orchard.Mvc;
|
||||||
@@ -28,6 +30,9 @@ namespace Orchard.Dashboards.Controllers {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public ActionResult Edit() {
|
public ActionResult Edit() {
|
||||||
|
if (!_services.Authorizer.Authorize(Permissions.ManageDashboards))
|
||||||
|
return new HttpUnauthorizedResult();
|
||||||
|
|
||||||
var dashboard = _dashboardService.GetDashboardDescriptor();
|
var dashboard = _dashboardService.GetDashboardDescriptor();
|
||||||
var editor = dashboard.Editor(_services.New);
|
var editor = dashboard.Editor(_services.New);
|
||||||
return View(editor);
|
return View(editor);
|
||||||
@@ -37,16 +42,26 @@ namespace Orchard.Dashboards.Controllers {
|
|||||||
[HttpPost]
|
[HttpPost]
|
||||||
[FormValueRequired("submit.Save")]
|
[FormValueRequired("submit.Save")]
|
||||||
public ActionResult Save() {
|
public ActionResult Save() {
|
||||||
return UpdateDashboard(dashboard => _services.Notifier.Information(T("Your dashboard has been saved.")));
|
if (!_services.Authorizer.Authorize(Permissions.ManageDashboards))
|
||||||
|
return new HttpUnauthorizedResult();
|
||||||
|
|
||||||
|
return UpdateDashboard(dashboard => {
|
||||||
|
if (!dashboard.Has<IPublishingControlAspect>() && !dashboard.TypeDefinition.Settings.GetModel<ContentTypeSettings>().Draftable)
|
||||||
|
_services.ContentManager.Publish(dashboard);
|
||||||
|
_services.Notifier.Information(T("Your dashboard has been saved."));
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
[ActionName("Edit")]
|
[ActionName("Edit")]
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
[FormValueRequired("submit.Publish")]
|
[FormValueRequired("submit.Publish")]
|
||||||
public ActionResult Publish() {
|
public ActionResult Publish() {
|
||||||
|
if (!_services.Authorizer.Authorize(Permissions.ManageDashboards))
|
||||||
|
return new HttpUnauthorizedResult();
|
||||||
|
|
||||||
return UpdateDashboard(dashboard => {
|
return UpdateDashboard(dashboard => {
|
||||||
_services.Notifier.Information(T("Your dashboard has been published."));
|
|
||||||
_services.ContentManager.Publish(dashboard);
|
_services.ContentManager.Publish(dashboard);
|
||||||
|
_services.Notifier.Information(T("Your dashboard has been published."));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -63,6 +78,8 @@ namespace Orchard.Dashboards.Controllers {
|
|||||||
|
|
||||||
if (contentItem != null)
|
if (contentItem != null)
|
||||||
conditonallyPublish(contentItem);
|
conditonallyPublish(contentItem);
|
||||||
|
else
|
||||||
|
_services.Notifier.Information(T("Your dashboard has been saved."));
|
||||||
|
|
||||||
return RedirectToAction("Edit");
|
return RedirectToAction("Edit");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,6 +24,7 @@
|
|||||||
<IISExpressAnonymousAuthentication />
|
<IISExpressAnonymousAuthentication />
|
||||||
<IISExpressWindowsAuthentication />
|
<IISExpressWindowsAuthentication />
|
||||||
<IISExpressUseClassicPipelineMode />
|
<IISExpressUseClassicPipelineMode />
|
||||||
|
<UseGlobalApplicationHostFile />
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
<DebugSymbols>true</DebugSymbols>
|
<DebugSymbols>true</DebugSymbols>
|
||||||
@@ -62,6 +63,10 @@
|
|||||||
<Reference Include="System.Web.Extensions" />
|
<Reference Include="System.Web.Extensions" />
|
||||||
<Reference Include="System.Web.Abstractions" />
|
<Reference Include="System.Web.Abstractions" />
|
||||||
<Reference Include="System.Web.Routing" />
|
<Reference Include="System.Web.Routing" />
|
||||||
|
<Reference Include="System.Web.WebPages, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
|
<SpecificVersion>False</SpecificVersion>
|
||||||
|
<HintPath>..\..\..\..\lib\aspnetmvc\System.Web.WebPages.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
<Reference Include="System.Xml" />
|
<Reference Include="System.Xml" />
|
||||||
<Reference Include="System.Configuration" />
|
<Reference Include="System.Configuration" />
|
||||||
<Reference Include="System.Xml.Linq" />
|
<Reference Include="System.Xml.Linq" />
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -1,7 +1,7 @@
|
|||||||
@using Orchard.ContentManagement
|
@using Orchard.ContentManagement
|
||||||
@{
|
@{
|
||||||
Style.Include("bootstrap.css", "bootstrap.min.css");
|
Style.Include("bootstrap.css", "bootstrap.min.css");
|
||||||
Style.Include("~/Modules/Orchard.Layouts/Styles/Lib/font-awesome.css", "~/Modules/Orchard.Layouts/Styles/Lib/font-awesome.min.css");
|
Style.Include("~/Modules/Orchard.Layouts/Styles/Lib.css", "~/Modules/Orchard.Layouts/Styles/Lib.min.css");
|
||||||
Style.Include("dashboard.css");
|
Style.Include("dashboard.css");
|
||||||
}
|
}
|
||||||
@{
|
@{
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
<div class="orchard-layouts-root">
|
@using Orchard.Dashboards
|
||||||
|
<div class="orchard-layouts-root">
|
||||||
@Display(Model.LayoutRoot)
|
@Display(Model.LayoutRoot)
|
||||||
</div>
|
</div>
|
||||||
|
@if (AuthorizedFor(Permissions.ManageDashboards)) {
|
||||||
|
<div class="group">
|
||||||
|
<div class="pull-right">
|
||||||
|
@Html.ActionLink(T("Edit").ToString(), "Edit", new {controller = "Dashboard", area = "Orchard.Dashboards"}, new {@class = "button"})
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user