This is an automated email from the ASF dual-hosted git repository.
jleroux pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/ofbiz-framework.git
The following commit(s) were added to refs/heads/trunk by this push:
new 81df043 Improved: Catalog Screen - VIEW permissions (OFBIZ-12491)
(#444)
81df043 is described below
commit 81df0433bbc5dddb046a2b5ffa29192549e79878
Author: Pierre Smits <[email protected]>
AuthorDate: Thu Jan 20 13:08:19 2022 +0100
Improved: Catalog Screen - VIEW permissions (OFBIZ-12491) (#444)
Currently, a user with only 'VIEW' permissions, as demonstrated in trunk
demo with userId = auditor, accessing the catalog screen, sees editable fields
and/or triggers (to requests) reserved for users with 'CREATE' or 'UPDATE'
permissions.
See (test with):
https://localhost:8443/catalog/control/EditProdCatalog?prodCatalogId=DemoCatalog
modified:
- CatalogScreens.xml
restructured screen EditProductCatalog vis-a-vis permissions
- ProdCatalogForms.xml
added form Catalog for users with VIEW permission
---
.../product/widget/catalog/CatalogScreens.xml | 25 ++++++++++++++++++----
.../product/widget/catalog/ProdCatalogForms.xml | 13 ++++-------
2 files changed, 25 insertions(+), 13 deletions(-)
diff --git a/applications/product/widget/catalog/CatalogScreens.xml
b/applications/product/widget/catalog/CatalogScreens.xml
index d5e753d..12be798 100644
--- a/applications/product/widget/catalog/CatalogScreens.xml
+++ b/applications/product/widget/catalog/CatalogScreens.xml
@@ -59,10 +59,27 @@ under the License.
<widgets>
<decorator-screen name="CommonCatalogDecorator"
location="${parameters.mainDecoratorLocation}">
<decorator-section name="body">
- <screenlet title="${groovy: parameters.prodCatalogId ?
uiLabelMap.PageTitleEditProductCatalog :
uiLabelMap.PageTitleNewProductCatalog}">
- <label
style="h3">${uiLabelMap.ProductCatalogEmptyWarning}</label>
- <include-form name="EditProdCatalog"
location="component://product/widget/catalog/ProdCatalogForms.xml"/>
- </screenlet>
+ <section>
+ <condition>
+ <and>
+ <or>
+ <if-has-permission
permission="CATALOG" action="_CREATE"/>
+ <if-has-permission
permission="CATALOG" action="_UPDATE"/>
+ </or>
+ </and>
+ </condition>
+ <widgets>
+ <screenlet title="${groovy:
parameters.prodCatalogId ? uiLabelMap.PageTitleEditProductCatalog :
uiLabelMap.PageTitleNewProductCatalog}">
+ <label
style="h3">${uiLabelMap.ProductCatalogEmptyWarning}</label>
+ <include-form name="EditProdCatalog"
location="component://product/widget/catalog/ProdCatalogForms.xml"/>
+ </screenlet>
+ </widgets>
+ <fail-widgets>
+ <screenlet>
+ <include-form name="Catalog"
location="component://product/widget/catalog/ProdCatalogForms.xml"/>
+ </screenlet>
+ </fail-widgets>
+ </section>
</decorator-section>
</decorator-screen>
</widgets>
diff --git a/applications/product/widget/catalog/ProdCatalogForms.xml
b/applications/product/widget/catalog/ProdCatalogForms.xml
index 88807fc..11ebadc 100644
--- a/applications/product/widget/catalog/ProdCatalogForms.xml
+++ b/applications/product/widget/catalog/ProdCatalogForms.xml
@@ -20,6 +20,10 @@ under the License.
<forms xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://ofbiz.apache.org/Widget-Form"
xsi:schemaLocation="http://ofbiz.apache.org/Widget-Form
http://ofbiz.apache.org/dtds/widget-form.xsd">
+ <form name="Catalog" type="single" default-map-name="prodCatalog"
+ header-row-style="header-row" default-table-style="basic-table"
default-entity-name="ProdCatalog">
+ <auto-fields-entity entity-name="ProdCatalog"
default-field-type="display"/>
+ </form>
<form name="FindCatalog" type="single" target="FindCatalog" title=""
default-map-name="catalog"
header-row-style="header-row" default-table-style="basic-table" >
<field name="prodCatalogId"
title="${uiLabelMap.ProdCatalogId}"><text-find/></field>
@@ -28,7 +32,6 @@ under the License.
<submit button-type="button"/>
</field>
</form>
-
<grid name="ListCatalog" list-name="listIt" paginate-target="FindCatalog"
odd-row-style="alternate-row" default-table-style="basic-table
hover-bar" header-row-style="header-row-2">
<actions>
@@ -56,34 +59,26 @@ under the License.
</grid>
<form name="EditProdCatalog" type="single" target="updateProdCatalog"
title="" default-map-name="prodCatalog"
header-row-style="header-row" default-table-style="basic-table"
default-entity-name="ProdCatalog">
-
<alt-target use-when="prodCatalog==null" target="createProdCatalog"/>
-
<auto-fields-service service-name="updateProdCatalog" map-name=""/>
-
<field use-when="prodCatalog!=null" name="prodCatalogId"
title="${uiLabelMap.ProductCatalogId}"
tooltip="${uiLabelMap.ProductNotModificationRecreatingProductCatalog}."><display/></field>
<field use-when="prodCatalog==null&&prodCatalogId!=null"
name="prodCatalogId" title="${uiLabelMap.ProductCatalogId}"
tooltip="${uiLabelMap.ProductCouldNotFindProductCatalogWithId}
[${prodCatalogId}]"><text size="20" maxlength="20"/></field>
<!-- this to be taken care of with auto-fields-service as soon as it
uses entity field info too -->
<field use-when="prodCatalog==null&&prodCatalogId==null"
name="prodCatalogId" title="${uiLabelMap.ProductCatalogId}"><text size="20"
maxlength="20"/></field>
-
<field name="catalogName" required-field="true"><text size="30"
maxlength="60"/></field>
-
<field name="useQuickAdd" title="${uiLabelMap.ProductUseQuickAdd}">
<drop-down allow-empty="false" no-current-selected-key="Y"><option
key="Y" description="${uiLabelMap.CommonY}"/><option key="N"
description="${uiLabelMap.CommonN}"/></drop-down>
</field>
-
<field name="styleSheet" title="${uiLabelMap.ProductStyleSheet}"><text
size="60" maxlength="250"/></field>
<field name="headerLogo" title="${uiLabelMap.ProductHeaderLogo}"><text
size="60" maxlength="250"/></field>
<field name="contentPathPrefix"
title="${uiLabelMap.ProductContentPathPrefix}"
tooltip="${uiLabelMap.ProductPrependedImageContentPaths}"><text size="60"
maxlength="250"/></field>
<field name="templatePathPrefix"
title="${uiLabelMap.ProductTemplatePathPrefix}"
tooltip="${uiLabelMap.ProductPrependedTemplatePaths}"><text size="60"
maxlength="250"/></field>
-
<field name="viewAllowPermReqd"
title="${uiLabelMap.ProductCategoryViewAllowPermReqd}">
<drop-down allow-empty="false" no-current-selected-key="N"><option
key="Y" description="${uiLabelMap.CommonY}"/><option key="N"
description="${uiLabelMap.CommonN}"/></drop-down>
</field>
<field name="purchaseAllowPermReqd"
title="${uiLabelMap.ProductCategoryPurchaseAllowPermReqd}">
<drop-down allow-empty="false" no-current-selected-key="N"><option
key="Y" description="${uiLabelMap.CommonY}"/><option key="N"
description="${uiLabelMap.CommonN}"/></drop-down>
</field>
-
<field name="submitButton" title="${uiLabelMap.CommonUpdate}"
widget-style="smallSubmit"><submit button-type="button"/></field>
</form>
<form name="AddProdCatalogToParty" type="single"
target="addProdCatalogToParty" title=""