通过 OData 里面写代码去检查有没有某一个 catalog 的权限

对于标题这个需求,首先要考虑在 OData 实现的什么地方去编写检查逻辑。

可以考虑在 OData 模型的 Function Import 里编写检查逻辑。

如果是用 Gateway Builder 即 SEGW 事物码开发的 OData,首先在 SEGW 项目里创建 Function Import:

然后在对应的 class 里编写 Function import 的具体实现代码。

至于如何检查一个用户是否被分配了某个 catalog,请阅读我这篇文章SAP Fiori Launchpad Tile,UI5应用,和PFCG Role的对应关系

首先需要知道待检查的 catalog,被分配到哪个具体的 PFCG role 里,然后检查用户是否被分配到这个查到的 PFCG role 里。

举个例子:我想检查用户 WANGJER 是否被分配了 catalog X-SAP-UI2-CATALOGPAGE:SAP_CRM_BC_SALESREP

首先弄清楚 X-SAP-UI2-CATALOGPAGE:SAP_CRM_BC_SALESREP 被哪些 PFCG role 包含了?

答案是 ZSAP_CRM_BCR_SALESREP

然后是检查 WANGJER 这个用户是否被分配给 这个PFCG role 了?

答案是 Yes,因此检查结果,WANGJER 这个用户,拥有 X-SAP-UI2-CATALOGPAGE:SAP_CRM_BC_SALESREP 的权限。

当然,需要使用 ST05 等工具,找到哪些数据库表,存储了 catalog 与 PFCG role,以及 PFCG role 与用户名的对应关系。

PFCG 相关的数据库表,以 AGR 开头:

更多阅读

Fiori Catalog 是 Key User 希望为一个角色提供的一组 Tile / 应用程序。 根据角色和分配给角色的目录,用户可以浏览目录,并选择其想要在 SAP Fiori Launchpad 的输入页面上显示的磁贴等应用程序。

Business Group 是来自一个或多个 catalogs 的应用程序的子集。 用户主页上显示哪些 tiles 取决于分配给用户角色的 Business Group. 此外,用户可以通过向预交付组或自定义组添加或删除应用程序来个性化入口 Fiori Page.

使用事物码 /n/ui2/flpd_cust 创建和浏览 Business Group 和 Catalog:

猜你喜欢

转载自blog.csdn.net/i042416/article/details/125469849