点击此处---> 群内免费提供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
只需使用
CatalogVersion.writePrincipals
和CatalogVersion.readPrincipals
。没有对CatalogVersion的读写权限的主体将在驾驶舱中看到相关的Catalog,但不会看到各自的CatalogVersion。
您可以在Backoffice的CatalogVersion的"权限"选项卡上找到属性。
最好, 托马斯(Thomas)
嗨Aeron。
问题是产品座舱使用de.hybris.platform.catalog.impl.DefaultCatalogVersionService#getAllReadableCatalogVersions填充目录(实际上是目录版本),如果您查看代码,则会看到它禁用了搜索限制 在使用DAO之前。
您还将看到它查找与用户所属的所有组关联的可读目录版本。 因此,如果您能够限制用户所属的组,以使其仅包含您想要的目录作为可读目录版本,那么您应该只在产品座舱上看到它(作为用户,这可能很棘手。 必须属于该员工组才能访问产品驾驶舱OOTB。
另一种方法可能是扩展以下服务,并覆盖方法de.hybris.platform.productcockpit.services.catalog.impl.CatalogServiceImpl#getAllCatalogVersions在您的定义中,您可以调用" return catalogVersionDao.findReadableCatalogVersions(u);" 直接,而无需先禁用搜索限制。
一周热门 更多>