cabloy-pro
cabloy-pro copied to clipboard
工作流字段权限配置
#49
目标
- 在工作流节点,配置字段权限
- 同时支持主表和明细表
旧方案
- read/write分开配置
- 支持配置类型
- 允许所有字段
- 禁止所有字段
- 允许指定字段
- 自定义
- 旧方案截图
新方案
- read/write合并配置,通过ebReadOnly进行标识
- 支持配置类型
| 类型 | 类型名称 | 说明 |
|---|---|---|
| default | 允许所有字段 | 直接使用默认schema |
| whitelist | 允许指定字段(白名单) | 以默认schema为基础,挑出指定的字段 |
| blacklist | 禁止指定字段(黑名单) | 以默认schema为基础,对指定字段做调整 |
| custom | 自定义 | 支持更灵活的配置 |
- 说明
- 每一个字段都允许配置:允许读/允许写
- 如果基础schema中明确指定ebReadOnly: true,那么“允许写”就禁用
- 换句话说,只允许降级,不允许升级(除非在“自定义”中设置)
- custom
- 支持数组/对象
- 数组:字段清单,每个字段可以是完整的property
- 对象:可直接指定validator/schema
- 在此基础上,实现明细表的字段权限配置
- 只需在一个页面依次展开:如果有明细表,就采用风箱组件,并且第一个显示“主表”
- schema.details即可
配置范例
schema: {
type: 'default', // default/blacklist/whitelist/custom
// value: ['atomName'],
// value: [{ name: 'atomName' }],
// value: [{ name: 'atomName', read: true, write: false }],
// value: [
// 'atomName',
// {
// name: 'description',
// property: {
// type: 'string',
// ebType: 'text',
// ebTitle: 'Description',
// },
// },
// ],
// value: {
// module: '',
// validator: '',
// schema: '',
// },
},
更正
在大多数场景,读与写往往采用不同的配置策略,比如读采用黑名单,写采用白名单
因此,采用基础控制+指定控制相结合的配置策略
| 类型 | 类型名称 | 说明 |
|---|---|---|
| allowAllFieldsRead | 允许所有字段(只读) | 以默认schema为基础,只读模式 |
| allowAllFieldsReadWrite | 允许所有字段(读写) | 以默认schema为基础,读写模式 |
| allowSpecificFields | 允许指定字段 | 以默认schema为基础,采用基础控制+指定控制策略,对指定字段做调整 |
| custom | 自定义 | 支持更灵活的配置 |