From 7405cbe6ef067b8816ca9f58943e44fc0fe759ec Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 12 May 2022 18:05:38 +0200 Subject: [PATCH] check for send to publish permission --- src/Umbraco.Core/EmbeddedResources/Lang/en_us.xml | 1 + .../views/content/overlays/sendtopublish.controller.js | 8 +++++++- .../src/views/content/overlays/sendtopublish.html | 7 ++++++- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Core/EmbeddedResources/Lang/en_us.xml b/src/Umbraco.Core/EmbeddedResources/Lang/en_us.xml index e23ee59f80..82938c5064 100644 --- a/src/Umbraco.Core/EmbeddedResources/Lang/en_us.xml +++ b/src/Umbraco.Core/EmbeddedResources/Lang/en_us.xml @@ -321,6 +321,7 @@ This item is in the Recycle Bin Save is not allowed Publish is not allowed + Send for approval is not allowed %0%]]> diff --git a/src/Umbraco.Web.UI.Client/src/views/content/overlays/sendtopublish.controller.js b/src/Umbraco.Web.UI.Client/src/views/content/overlays/sendtopublish.controller.js index dd9960d352..0bc9c16a97 100644 --- a/src/Umbraco.Web.UI.Client/src/views/content/overlays/sendtopublish.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/content/overlays/sendtopublish.controller.js @@ -44,6 +44,10 @@ } + function allowSendToPublish (variant) { + return variant.allowedActions.includes("H"); + } + function changeSelection() { var firstSelected = vm.variants.find(v => v.save); $scope.model.disableSubmitButton = !firstSelected; //disable submit button if there is none selected @@ -62,13 +66,15 @@ // * it's editor is in a $dirty state // * it has pending saves // * it is unpublished - return (variant.active || variant.isDirty || variant.state === "Draft" || variant.state === "PublishedPendingChanges"); + variant.notAllowed = allowSendToPublish(variant) === false && variant.active; + return (variant.active || variant.isDirty || variant.state === "Draft" || variant.state === "PublishedPendingChanges") && (allowSendToPublish(variant) || variant.active); } //when this dialog is closed, reset all 'save' flags $scope.$on('$destroy', function () { vm.variants.forEach(variant => { variant.save = false; + variant.notAllowed = false; }); }); diff --git a/src/Umbraco.Web.UI.Client/src/views/content/overlays/sendtopublish.html b/src/Umbraco.Web.UI.Client/src/views/content/overlays/sendtopublish.html index d366c9aa9a..b9061a8eb6 100644 --- a/src/Umbraco.Web.UI.Client/src/views/content/overlays/sendtopublish.html +++ b/src/Umbraco.Web.UI.Client/src/views/content/overlays/sendtopublish.html @@ -18,7 +18,8 @@ name="publishVariantSelector" model="variant.publish" on-change="vm.changeSelection(variant)" - server-validation-field="{{variant.htmlId}}"> + server-validation-field="{{variant.htmlId}}" + disabled="variant.notAllowed"> @@ -33,6 +34,10 @@ - Mandatory + - + + + {{publishVariantSelectorForm.publishVariantSelector.errorMsg}}