跳到主要内容

自举

ceta平台可以用form,page,flow扩展ceta平台本身,在project级别和pbc级别注入菜单即可使用扩展功能

1.定位到CETA项目

https://ceta-dev.test.bizops.com.cn/icp-ui/center/project/-1/pbc 这个是访问路径,https://ceta-dev.test.bizops.com.cn 替换成相应环境的host,-1就是ceta的projectId

Path

2. 表单

  1. 表单必须勾选主数据,并且数据类型为 CETA Mate Data Security Level - Project
  2. 必须有一个 单行文本 类型的 InputField,且 ID 为 projectId,默认值为 :params.projectIdFormEntity
  3. 如果是为PBC添加扩展功能,可以在默认值中使用 :params.pbcId 得到url路径参数中的pbcId。

3.Page

  1. 如果有新增button,在“表单”Tab选择完后切换到“自定义”Tab在链接地址前加上./../../开头,比如./../../form/project-form/layout/default Page
  2. 如果Table中有查看按钮或编辑按钮,配置链接地址的方法和新增按钮类似添加./../../开头。
  3. 如果是给项目一级菜单用的Page其中只有一个表格,推荐将Table高度设置为 calc(100vh - var(--app-header-height) - var(--pbcm-main-head-height) - var(--assume-project-level1-tabs-height) - var(--pbcm-button-bar))
  4. 如果是给项目二级菜单用的Page其中只有一个标签组和一个表格,推荐将这2个组件嵌入到一个垂直叠放中,为垂直叠放添加样式高度为calc(100vh - var(--app-header-height) - var(--pbcm-main-head-height) - var(--assume-project-level1-tabs-height) - var(--pbcm-button-bar)),为标签组添加样式flex: 0即:占用固定空间,为表格添加样式flex: 1即:占满剩余空间。
  5. 为按钮配置根据项目权限是否只读而隐藏,在按钮配置中配置隐藏条件,使用 :context.projectReadonly 是否为真判断。

4. Flow

  1. 如果 Flow 的节点类型是 Form(表单操作:创建、编辑;审批操作:审批),则权限与 2. 表单 配置相同。

  2. 如果是 Rest Flow,需要添加 SDK 以检查用户项目权限。SDK 的输入和输出参数如下:

    输入参数:

    • 用户 ID:使用 $CURRENT_USER.id 获取。
    • 应用 ID:通过 REST 请求入参带入,例如:/flow/api/flow-rest/rest-flow-permission?projectId=:params.projectId。可以使用$1.restTrigger.requestParams.projectId 获取 projectId
    • 权限类型view / edit / owner,分别代表只读、编辑和所有权限。

    输出参数:

    • hasPermissiontruefalsetrue 表示有权限。

Check user project permission

4.项目数据隔离

  1. 如果仅仅是project级别的数据隔离,则配置projectId ==:params.projectId,必须配置
  2. 如果还需要pbc级别的数据隔离,在2的基础上,增加配置项pbcId=:params.pbcId Example Data isolation

5.配置菜单

5.1 配置相应的菜单级别

  1. 应用是project级别。可选择插入位置,不选则追加在末尾。
  2. 组件是pbc级别。 Menu level

5.2 菜单配置完的效果

  1. 应用 Project menu
  2. 组件 Pbc menu