[关闭]
@windwolf 2020-05-19T06:26:10.000000Z 字数 683 阅读 277

Sailing 之 委托授权的设想

Sailing


需求

委托授权主要是处理相关责任人因故无法操作系统, 而由其他人员代劳的场景. 主要包括:
1. 委托人需要事先在系统中说明: 原因, 委托时间段, 委托范围(组织, 角色/权限), 受托人.
2. 在委托时间段内, 受托人可以切换进入委托人指定的组织/权限, 执行委托事项. 所有由委托人执行的事项. 由委托人和受托人执行事项, 应该可以明显的区分.
3. 由受托人执行的事项, 委托人可以在事后回顾.
4. 委托人可以随时取消委托.

实现思路

委托机制的重点有两个: 一个是如何将(组织/权限)临时授予某个人; 一个是如何留下正常操作和委托操作的痕迹.
前者要求受托人尽量模仿委托人, 后者要求委托人和受托人可以区分.

当委托人申请了一个委托并生效后. 一旦进入委托时间段, 委托机制就会在委托组织中加入一个受托人的影子用户, 影子用户拥有委托申请所指定的权限范围. 这个影子用户所在的组织/权限也会出现在受托人的组织列表中, 并标注为(委托). 于此同时, 通过组织单元查看用户, 也能看到这个影子用户及相应的权限, 并标注为(委托), 这个影子用户和权限都是只读的, 无法直接更改, 只能通过更改委托来间接调整.
当受托人切换到影子用户所在的组织时, 权限和正常的切换组织无异.
当受托人在影子用户所在组织中执行操作时, 主业务组织还是影子用户所在的组织, 创建人为受托人, 但需要标注出此操作为委托行为.
委托使用较多的场景是审批, 即便采用以上机制后, 对审批还有有个小问题: 对于在委托时间段之前就提交的审批, 还是发送到委托人, 而不是受托人. 这个问题如何解决?

一旦离开委托时间段, 委托机制就会移除这个影子用户.

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注