Error in commit message, replace
Note that anyway even and admin could not create an agreement role, see https://issues.apache.org/jira/browse/OFBIZ-12518. I guess it's due to the change to entity-auto, did not dig deeper. by Note that anyway even and admin could not create an agreement role, see https://issues.apache.org/jira/browse/OFBIZ-13021. I guess it's due to the change to entity-auto, did not dig deeper.

Jacques

Le 14/04/2024 à 09:11, jler...@apache.org a écrit :
This is an automated email from the ASF dual-hosted git repository.

jleroux pushed a commit to branch trunk
in repositoryhttps://gitbox.apache.org/repos/asf/ofbiz-framework.git


The following commit(s) were added to refs/heads/trunk by this push:
      new f6a2af5be6 Improved: Agreement Roles - VIEW permissions (OFBIZ-12518) 
(#471)
f6a2af5be6 is described below

commit f6a2af5be6b3975d394352308d32368714d3621e
Author: Pierre Smits<pierre.sm...@somonar.com>
AuthorDate: Sun Apr 14 09:11:45 2024 +0200

     Improved: Agreement Roles - VIEW permissions (OFBIZ-12518) (#471)
* Improved: Agreement Roles - VIEW permissions (OFBIZ-12518)
     Currently, a user with only 'VIEW' permissions, as demonstrated in trunk 
demo with userId = auditor, accessing the Agreement Roles screen, sees editable 
fields and/or triggers (to requests) reserved for users with 'CREATE' or 
'UPDATE' permissions.
To see/test:https://localhost:8443/accounting/control/EditAgreementRoles?agreementId=8000 modified:
     - AgreementScreens.xml - restructured screen EditAgreementRoles to work 
with permissions
     - AgreementForms.xml - added grid AgreementRoles for users with VIEW 
permissions
     additional cleanup
* Update AgreementForms.xml --------- Co-authored-by: Jacques Le Roux<jacques.le.r...@les7arts.com>
     Respectively replaces labels CommonParty and CommonRole by PartyPartyId 
and PartyRoleTypeId
Note that anyway even and admin could not create an agreement role, seehttps://issues.apache.org/jira/browse/OFBIZ-12518. I guess it's due to the change to entity-auto, did not dig deeper.
---
  applications/accounting/widget/AgreementForms.xml  | 25 ++++++++++------
  .../accounting/widget/AgreementScreens.xml         | 34 +++++++++++++++++-----
  2 files changed, 42 insertions(+), 17 deletions(-)

diff --git a/applications/accounting/widget/AgreementForms.xml 
b/applications/accounting/widget/AgreementForms.xml
index 09332f065f..247d57bba4 100644
--- a/applications/accounting/widget/AgreementForms.xml
+++ b/applications/accounting/widget/AgreementForms.xml
@@ -729,18 +729,25 @@ under the License.
              </hyperlink>
          </field>
      </grid>
-
-    <grid name="ListAgreementRoles" list-name="agreementRoles" 
paginate-target="EditAgreementRoles"
+    <grid name="AgreementRoles" list-name="agreementRoles" 
paginate-target="EditAgreementRoles"
          odd-row-style="alternate-row" header-row-style="header-row-2" 
default-table-style="basic-table hover-bar">
-        <actions>
-            <entity-and entity-name="AgreementRole" use-cache="true" 
list="agreementRoles">
-                <field-map field-name="agreementId" from-field="agreementId"/>
-            </entity-and>
-        </actions>
          <auto-fields-entity entity-name="AgreementRole" 
default-field-type="display"/>
          <field name="agreementId"><hidden/></field>
-        <field name="partyId" 
title="${uiLabelMap.PartyPartyId}"><display/></field>
-        <field name="roleTypeId" 
title="${uiLabelMap.PartyRoleTypeId}"><display/></field>
+        <field name="partyId" title="${uiLabelMap.PartyPartyId}">
+            <display-entity also-hidden="false" entity-name="PartyNameView"
+                key-field-name="partyId" description="[${partyId}] 
${groupName}${firstName} ${lastName}"/>
+        </field>
+        <field name="roleTypeId" title="${uiLabelMap.PartyRoleTypeId}"><display-entity 
entity-name="RoleType"/></field>
+    </grid>
+    <grid name="ListAgreementRoles" list-name="agreementRoles" 
paginate-target="EditAgreementRoles"
+        odd-row-style="alternate-row" header-row-style="header-row-2" 
default-table-style="basic-table hover-bar">
+        <auto-fields-entity entity-name="AgreementRole" 
default-field-type="edit"/>
+        <field name="agreementId"><hidden/></field>
+        <field name="partyId" title="${uiLabelMap.PartyPartyId}">
+            <display-entity also-hidden="false" entity-name="PartyNameView"
+                key-field-name="partyId" description="[${partyId}] 
${groupName}${firstName} ${lastName}"/>
+        </field>
+        <field name="roleTypeId" title="${uiLabelMap.PartyRoleTypeId}"><display-entity 
entity-name="RoleType"/></field>
          <field name="deleteLink" title=" " widget-style="buttontext">
              <hyperlink description="${uiLabelMap.CommonRemove}" 
target="deleteAgreementRole" also-hidden="false">
                  <parameter param-name="agreementId"/>
diff --git a/applications/accounting/widget/AgreementScreens.xml 
b/applications/accounting/widget/AgreementScreens.xml
index 4c3bf9d098..eb0095963d 100644
--- a/applications/accounting/widget/AgreementScreens.xml
+++ b/applications/accounting/widget/AgreementScreens.xml
@@ -873,21 +873,39 @@ under the License.
                  <set field="titleProperty" 
value="PageTitleFindAgreementRoles"/>
                  <set field="tabButtonItem" value="AgreementRoles"/>
                  <set field="helpAnchor" 
value="_help_for_edit_agreements_roles"/>
-                <property-map resource="PartyUiLabels" map-name="uiLabelMap" 
global="true"/>
                  <set field="agreementId" from-field="parameters.agreementId"/>
                  <entity-one entity-name="Agreement" value-field="agreement" 
auto-field-map="true"/>
+                <entity-condition entity-name="AgreementRole" 
list="agreementRoles">
+                    <order-by field-name="partyId"/>
+                    <order-by field-name="roleTypeId"/>
+                </entity-condition>
              </actions>
              <widgets>
                  <decorator-screen name="CommonAgreementDecorator" 
location="${parameters.agreementDecoratorLocation}">
                      <decorator-section name="body">
-                        <screenlet id="add-agreement-roles"  
title="${uiLabelMap.PageTitleAddAgreementRoles}" collapsible="true">
-                            <section>
-                                <widgets>
+                        <section>
+                            <condition>
+                                <and>
+                                    <or>
+                                        <if-has-permission permission="ACCOUNTING" 
action="_CREATE"/>
+                                        <if-has-permission permission="ACCOUNTING" 
action="_UPDATE"/>
+                                    </or>
+                                </and>
+                            </condition>
+                            <widgets>
+                                <screenlet id="add-agreement-roles" 
title="${uiLabelMap.PageTitleAddAgreementRoles}" collapsible="true">
                                      <include-form name="AddAgreementRole" 
location="component://accounting/widget/AgreementForms.xml"/>
-                                </widgets>
-                            </section>
-                        </screenlet>
-                        <include-grid name="ListAgreementRoles" 
location="component://accounting/widget/AgreementForms.xml"/>
+                                </screenlet>
+                                <screenlet id="AgreementRoles" 
title="${uiLabelMap.CommonRoles}">
+                                    <include-grid name="ListAgreementRoles" 
location="component://accounting/widget/AgreementForms.xml"/>
+                                </screenlet>
+                            </widgets>
+                            <fail-widgets>
+                                <screenlet id="AgreementRoles" 
title="${uiLabelMap.CommonRoles}">
+                                    <include-grid name="AgreementRoles" 
location="component://accounting/widget/AgreementForms.xml"/>
+                                </screenlet>
+                            </fail-widgets>
+                        </section>
                      </decorator-section>
                  </decorator-screen>
              </widgets>

Reply via email to