如何使用 Java 处理程序在 Hybris Backoffice 中为特定的 Base Store 隐藏 editorArea:section?
How can I hide an editorArea:section in Hybris Backoffice for a specific Base Store using a Java handler?
我在后台添加了一个新的 editorArea:section-config.xml 在 Hybris 中,例如:
<editorArea:section name="myEditorArea">
<editorArea:attribute qualifier="someQualifier"/>
</editorArea:section>
我想使用 editorArea 名称,使用 Java 处理程序,将其隐藏在某些特定 Base 商店的 Backoffice 中。有办法吗?
如果您为特定的基本商店定义了主体(即用户组),则可以执行以下操作。
假设您有类型 Book 并且在后台-config.xml 有一个为该类型定义的上下文如下
<context type="Book" parent="GenericItem" merge-by="type">
<context component="editor-area">
<editorArea:editorArea>
<editorArea:tab name="hmc.tab.common" position="0">
<editorArea:section name="book.section.entities">
<editorArea:attribute qualifier="title"/>
<editorArea:attribute qualifier="description"/>
</editorArea:editorArea>
</editorArea:tab>
</editorArea:editorArea>
</context>
</context>
假设没有搜索限制并且权限允许修改 title 和 description 属性,后台用户将能够修改它们.
现在让我们假设 Book 类型有 isdn 属性 并且这个 属性 在后台的编辑区域应该只对 backofficeadministratorrole[=31 可见=] 和 book.publishers.de 用户组。反过来,book.publishers.de 是德国基本商店特定组,定义如下
INSERT_UPDATE BackofficeRole; uid[unique = true]; locName[lang = en]; authorities; backOfficeLoginDisabled[default = false]
; book.publishers.de ; German Publishers ; book.publishers.de
如您所见,该角色被定义为 BackofficeRole,它是 UserGroup 的子级,但不是直接定义为 UserGroup。这很重要。
在上面的上下文代码片段中,您应该再添加一个上下文,如下所示,以实现上面假设的限制
<context type="Book" parent="GenericItem" merge-by="type">
<context component="editor-area">
<editorArea:editorArea>
<editorArea:tab name="hmc.tab.common" position="0">
<editorArea:section name="book.section.entities">
<editorArea:attribute qualifier="title"/>
<editorArea:attribute qualifier="description"/>
</editorArea:editorArea>
</editorArea:tab>
</editorArea:editorArea>
</context>
<context component="editor-area" principal="backofficeadministratorrole,book.publishers.de" merge-by="principal">
<editorArea:editorArea>
<editorArea:tab name="hmc.addresses" merge-mode="append">
<editorArea:section name="hmc.tab.common">
<editorArea:attribute qualifier="isdn"/>
</editorArea:section>
</editorArea:tab>
</editorArea:editorArea>
</context>
</context>
部署更改后,不要忘记在后台重置所有内容(F4->右上角 y 图标 -> 重置所有内容)。
我在后台添加了一个新的 editorArea:section-config.xml 在 Hybris 中,例如:
<editorArea:section name="myEditorArea">
<editorArea:attribute qualifier="someQualifier"/>
</editorArea:section>
我想使用 editorArea 名称,使用 Java 处理程序,将其隐藏在某些特定 Base 商店的 Backoffice 中。有办法吗?
如果您为特定的基本商店定义了主体(即用户组),则可以执行以下操作。
假设您有类型 Book 并且在后台-config.xml 有一个为该类型定义的上下文如下
<context type="Book" parent="GenericItem" merge-by="type">
<context component="editor-area">
<editorArea:editorArea>
<editorArea:tab name="hmc.tab.common" position="0">
<editorArea:section name="book.section.entities">
<editorArea:attribute qualifier="title"/>
<editorArea:attribute qualifier="description"/>
</editorArea:editorArea>
</editorArea:tab>
</editorArea:editorArea>
</context>
</context>
假设没有搜索限制并且权限允许修改 title 和 description 属性,后台用户将能够修改它们. 现在让我们假设 Book 类型有 isdn 属性 并且这个 属性 在后台的编辑区域应该只对 backofficeadministratorrole[=31 可见=] 和 book.publishers.de 用户组。反过来,book.publishers.de 是德国基本商店特定组,定义如下
INSERT_UPDATE BackofficeRole; uid[unique = true]; locName[lang = en]; authorities; backOfficeLoginDisabled[default = false]
; book.publishers.de ; German Publishers ; book.publishers.de
如您所见,该角色被定义为 BackofficeRole,它是 UserGroup 的子级,但不是直接定义为 UserGroup。这很重要。
在上面的上下文代码片段中,您应该再添加一个上下文,如下所示,以实现上面假设的限制
<context type="Book" parent="GenericItem" merge-by="type">
<context component="editor-area">
<editorArea:editorArea>
<editorArea:tab name="hmc.tab.common" position="0">
<editorArea:section name="book.section.entities">
<editorArea:attribute qualifier="title"/>
<editorArea:attribute qualifier="description"/>
</editorArea:editorArea>
</editorArea:tab>
</editorArea:editorArea>
</context>
<context component="editor-area" principal="backofficeadministratorrole,book.publishers.de" merge-by="principal">
<editorArea:editorArea>
<editorArea:tab name="hmc.addresses" merge-mode="append">
<editorArea:section name="hmc.tab.common">
<editorArea:attribute qualifier="isdn"/>
</editorArea:section>
</editorArea:tab>
</editorArea:editorArea>
</context>
</context>
部署更改后,不要忘记在后台重置所有内容(F4->右上角 y 图标 -> 重置所有内容)。