Issue 8151 implementation (#8153)

Localization Summary admin must authorize for CreateContent permission to a specific contentitem and not a generic PublishContent permission
This commit is contained in:
LorenzoFrediani-Laser
2019-01-10 12:05:58 -08:00
committed by Sébastien Ros
parent efcf028696
commit 8826c4cdee
2 changed files with 8 additions and 6 deletions
@@ -29,7 +29,7 @@ namespace Orchard.Localization.Drivers {
ContentShape("Parts_Localization_ContentTranslations_SummaryAdmin", () => {
var siteCultures = _cultureManager.ListCultures();
return shapeHelper.Parts_Localization_ContentTranslations_SummaryAdmin(Id: part.ContentItem.Id, MasterId: ActualMasterId(part), Culture: GetCulture(part), Localizations: GetDisplayLocalizations(part, VersionOptions.Latest), SiteCultures: siteCultures);
return shapeHelper.Parts_Localization_ContentTranslations_SummaryAdmin(Id: part.ContentItem.Id, MasterId: ActualMasterId(part), Culture: GetCulture(part), Localizations: GetDisplayLocalizations(part, VersionOptions.Latest), SiteCultures: siteCultures, ContentPart: part);
})
);
}
@@ -1,6 +1,6 @@
@using Orchard.Core.Contents;
@using Orchard.Localization.Models;
@if (AuthorizedFor(Permissions.PublishContent)) {
@{
Style.Require("LocalizationAdmin");
IEnumerable<LocalizationPart> localizations = Model.Localizations;
var localizationLinks = Html.UnorderedList(localizations, (c, i) => Html.ItemEditLink(c.Culture.Culture, c), "localizations");
@@ -14,9 +14,11 @@ var localizationLinks = Html.UnorderedList(localizations, (c, i) => Html.ItemEdi
{
<div class="content-localizations"><h4>@T("Translations:")</h4>@localizationLinks</div>
}
@if (Model.Culture != null && !((IEnumerable<string>)Model.SiteCultures).All(c => c == Model.Culture || localizations.Any(l => c == l.Culture.Culture)))
{
<div class="add-localization">@Html.ActionLink(T("+ New translation").Text, "Translate", "Admin", new { area = "Orchard.Localization", id = Model.MasterId }, null)</div>
}
@if (AuthorizedFor(Permissions.CreateContent, Model.ContentPart.ContentItem)) {
if (Model.Culture != null && !((IEnumerable<string>)Model.SiteCultures).All(c => c == Model.Culture || localizations.Any(l => c == l.Culture.Culture)))
{
<div class="add-localization">@Html.ActionLink(T("+ New translation").Text, "Translate", "Admin", new { area = "Orchard.Localization", id = Model.MasterId }, null)</div>
}
}
</div>
}