如何在某些用户组的产品座舱中隐藏"在线产品目录"节点

2020-09-19 19:17发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


如何为某些用户组在产品座舱中隐藏"在线产品目录"节点? 我尝试了以下搜索限制,但仍在产品驾驶舱中显示"在线产品目录"节点

INSERT_UPDATE SearchRestriction; code [unique = true]; principal(uid); query; restrictedType(code); active; generate; ProductCatalogVersions; productadmingroup; {item:catalogVersion} IN({{从{catalogVersion as cv}其中{cv.version} ='Staged'}})); Product; true; true; ProductCatalogRestriction; productadmingroup; {id}在{{从{catalog}中选择{id},其中{id}在('SalesProductCatalog' )}});目录; true; true; ProductCatalogVersionRestriction; productadmingroup; {pk} in({{从{catalogVersion as cv}中选择{pk},{catalog as c},其中{ c.pk } = {cv.catalog}和{c.id}和{cv.version} ='Staged' }}); CatalogVersion; true; true

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


如何为某些用户组在产品座舱中隐藏"在线产品目录"节点? 我尝试了以下搜索限制,但仍在产品驾驶舱中显示"在线产品目录"节点

INSERT_UPDATE SearchRestriction; code [unique = true]; principal(uid); query; restrictedType(code); active; generate; ProductCatalogVersions; productadmingroup; {item:catalogVersion} IN({{从{catalogVersion as cv}其中{cv.version} ='Staged'}})); Product; true; true; ProductCatalogRestriction; productadmingroup; {id}在{{从{catalog}中选择{id},其中{id}在('SalesProductCatalog' )}});目录; true; true; ProductCatalogVersionRestriction; productadmingroup; {pk} in({{从{catalogVersion as cv}中选择{pk},{catalog as c},其中{ c.pk } = {cv.catalog}和{c.id}和{cv.version} ='Staged' }}); CatalogVersion; true; true

付费偷看设置
发送
2条回答
粗暴的香蕉
1楼-- · 2020-09-19 19:33

只需使用 CatalogVersion.writePrincipals CatalogVersion.readPrincipals

没有对CatalogVersion的读写权限的主体将在驾驶舱中看到相关的Catalog,但不会看到各自的CatalogVersion。

您可以在Backoffice的CatalogVersion的"权限"选项卡上找到属性。

最好, 托马斯(Thomas)

当学会了学习
2楼-- · 2020-09-19 19:48

嗨Aeron。

问题是产品座舱使用de.hybris.platform.catalog.impl.DefaultCatalogVersionService#getAllReadableCatalogVersions填充目录(实际上是目录版本),如果您查看代码,则会看到它禁用了搜索限制 在使用DAO之前。

您还将看到它查找与用户所属的所有组关联的可读目录版本。 因此,如果您能够限制用户所属的组,以使其仅包含您想要的目录作为可读目录版本,那么您应该只在产品座舱上看到它(作为用户,这可能很棘手。 必须属于该员工组才能访问产品驾驶舱OOTB。

另一种方法可能是扩展以下服务,并覆盖方法de.hybris.platform.productcockpit.services.catalog.impl.CatalogServiceImpl#getAllCatalogVersions在您的定义中,您可以调用" return catalogVersionDao.findReadableCatalogVersions(u);" 直接,而无需先禁用搜索限制。

一周热门 更多>