写点什么

SAP CAP 项目 cds watch 生成的 index.html 的模板位置和权限控制

作者:Jerry Wang
  • 2022-10-26
    四川
  • 本文字数:1048 字

    阅读完需:约 3 分钟

SAP CAP 项目 cds watch 生成的 index.html 的模板位置和权限控制

使用 cds init 初始化一个 CAP 应用,然后 npm install, cds watch 启动服务器。


创建一个 schema 文件,内容如下:


namespace sap.ui.riskmanagement;using { managed } from '@sap/cds/common';  entity Risks : managed {    key ID      : UUID  @(Core.Computed : true);    title       : String(100);  }  entity Mitigations : managed {    key ID       : UUID  @(Core.Computed : true);    risks        : Association to many Risks on risks.miti = $self;  }
复制代码


注意,schema 文件可以定义 namespace.


这两个模型的 key 由 CAP 服务器自动填充,该服务器使用注释 @(Core.Computed : true) 向服务用户公开。


只有 entity 还无法被 end user 消费,需要通过 service 暴露给外部。


srv 文件夹里新建一个文件 risk-service.cds,注意这个文件和 entity schema 文件在不同的文件夹(前者在 db):


using { sap.ui.riskmanagement as my } from '../db/schema';@path: 'service/risk'service RiskService {  entity Risks as projection on my.Risks;    annotate Risks with @odata.draft.enabled;  entity Mitigations as projection on my.Mitigations;    annotate Mitigations with @odata.draft.enabled;}
复制代码


使用 cds watch 看到的自动生成的页面:



这个 index.html 的模板文件位置:


node_modules@sap\cds-dk\node_modules@sap\cds\app\index.html


在应用程序安全文件 (xs-security.json) 中,role templates 属性使您能够定义一个数组,其中列出了访问特定应用程序模块所需的一个或多个 roles(具有相应的范围和任何必需的属性)。可以定义多个角色模板,每个模板都有自己的范围和属性。


一个例子:


"role-templates": [      {       "name"                : "Editor",       "description"         : "View, edit, delete books",       "scope-references"    : [                               "$XSAPPNAME.Edit", "$XSAPPNAME.Delete"                                ],       "attribute-references": [                               "Country", "CostCenter"                               ]       },]
复制代码


必须实例化角色模板。 对于角色模板中定义的任何属性和具体的属性值尤其如此,这些属性需要定制,因此无法自动提供。 只包含“本地”范围的角色模板可以在没有用户交互的情况下被实例化。 对于 foreign scope 也是如此,其中范围所有者已在某种白名单中声明同意(例如,供“公共”使用或已知“朋友”使用)。

发布于: 刚刚阅读数: 3
用户头像

Jerry Wang

关注

🏆InfoQ写作平台-签约作者🏆 2017-12-03 加入

SAP成都研究院开发专家,SAP社区导师,SAP中国技术大使。2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今。工作中使用 ABAP, Java, JavaScript 和 TypeScript 进行开发。

评论

发布
暂无评论
SAP CAP 项目 cds watch 生成的 index.html 的模板位置和权限控制_云原生_Jerry Wang_InfoQ写作社区