任务访问策略
任务访问策略类,用于判断给定的创建人员是否允许执行某个任务,指定合法参与者对象。
- 实现任务访问策略接口
TaskAccessStrategy
默认判断为当前任务执行者为合法参与者对象。
java
public interface TaskAccessStrategy {
/**
* 根据创建人ID、参与者集合判断是否允许访问所属任务
*
* @param userId 用户ID
* @param taskActors 参与者列表 传递至该接口的实现类中的参与者都是为非空
* @return boolean 是否允许访问
*/
boolean isAllowed(String userId, List<FlwTaskActor> taskActors);
/**
* 获取指定合法参与者对象
* <p>
* 被使用在:分配任务,解决委派任务 场景
* </p>
*
* @param taskId 当前任务ID
* @param taskActors 通过任务ID查询到的任务参与者列表
* @param flowCreator 任务参与者
* @return {@link FlwTaskActor}
*/
default FlwTaskActor getAllowedFlwTaskActor(Long taskId, FlowCreator flowCreator, List<FlwTaskActor> taskActors) {
Optional<FlwTaskActor> taskActorOpt = taskActors.stream().filter(t -> Objects.equals(t.getActorId(), flowCreator.getCreateId())).findFirst();
Assert.isTrue(!taskActorOpt.isPresent(), "Not authorized to perform this task");
return taskActorOpt.get();
}
}