扩展增加附件相关权限属性,允许单独配置业务对象的附件增删改查权限,而不需要跟主记录的编辑权限关联
Created by: yinlianghui
业务对象可配置权限属性原来有:
allowRead、allowEdit、allowCreate、allowDelete、viewAllRecords、modifyAllRecords、viewCompanyRecords、modifyCompanyRecords
。
按讨论结果,拟扩展增加以下附件相关权限属性(不考虑分部权限):
allowReadFiles、allowEditFiles、allowCreateFiles、allowDeleteFiles、viewAllFiles、modifyAllFiles
。
扩展之前,原来附件权限规则:
1.业务对象enable_files为true为基本条件 2.用户对业务对象当前记录有编辑权限、对附件对象有新建权限且业务对象当前记录未锁定时才可以上传附件。
扩展之后,改为:
- 业务对象enable_files为true为基本条件
- 只有用户对业务对象至少有allowReadFiles且用户对附件对象也至少有allowRead才可以看到附件列表,但是只限于看到owner为自己的附件。【前端已处理,odata接口未处理,暂时不影响使用】
- 只有用户对业务对象至少有viewAllFiles且用户对附件对象也至少有allowRead才可以看到该业务对象下所有附件。【未处理,需要改odata接口权限判断部分,列表视图是依靠odata接口返回数据的,目前odata接口是用的附件的viewAllRecored来判断是否返回其他用户上传的附件】
- 如果用户对附件对象有viewAllRecords权限,但是对业务对象没有viewAllFiles,那么他是不可以看该业务对象记录下的所有附件的,最多只能看该业务对象记录下owner为自己的附件。【未处理,同上,需要改odata接口权限判断部分】
- 只有用户对业务对象记录至少有allowEditFiles且用户对附件对象记录也至少有allowEdit才可以修改其owner的附件。【前端已处理,odata接口目前只识别了附件对象的allowEdit,可以后续补上】
- 只有用户对业务对象至少有modifyAllFiles且用户对附件对象也至少有allowEdit才可以修改该业务对象下的所有附件。【前端已处理,odata接口目前只识别了附件对象的modifyAllRecords,可以后续补上,补上前需要同时配置附件对象的modifyAllRecords和主表对象的modifyAllFiles】
- 如果用户对附件对象有modifyAllRecords权限,但是对业务对象没有modifyAllFiles,那么他是不可以修改该业务对象记录下的所有附件的,最多只能修改该业务对象记录下owner为自己的附件。【同上,前端已处理。。。】
- 不考虑业务对象附件记录的分部级权限。
- 只有用户对业务对象有allowCreateFiles且用户对附件对象也有allowCreate才可以上传新附件。【前端已处理,odata接口后续需要改成一样的规则】
- 对已存在的附件记录上传新版本属于修改附件权限不适用新建附件权限。【同上,前端已处理。。。】
- 删除附件权限参考业务对象记录的allowDelete权限规则,不过需要同时有附件对象的allowDelete权限和业务对象记录的 allowDeleteFiles权限才可以删除附件。