工作流字段权限配置
zhennann opened this issue · comments
目标
- 在工作流节点,配置字段权限
- 同时支持主表和明细表
旧方案
- read/write分开配置
- 支持配置类型
- 允许所有字段
- 禁止所有字段
- 允许指定字段
- 自定义
- 旧方案截图
![Pasted Graphic](https://private-user-images.githubusercontent.com/24246985/257467546-1971881e-3a1c-40ac-9076-9eccd9c318ac.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjI2MDIyMTMsIm5iZiI6MTcyMjYwMTkxMywicGF0aCI6Ii8yNDI0Njk4NS8yNTc0Njc1NDYtMTk3MTg4MWUtM2ExYy00MGFjLTkwNzYtOWVjY2Q5YzMxOGFjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MDIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODAyVDEyMzE1M1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWIwZmRmNGI3ODU3NWM4MWUwMTA3OTZlYzMwMjg2OWEzZjczYTQ1NWIzOGE2MmU5NWU0YjA2YWRlYWQ3Mzk3MzImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.O6MflgacMVsT4Bs9-6_7EgyZW8GmuI1wnH-Eobj7xLA)
新方案
- 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: '',
// },
},