Skip to content
广告❤️成为赞助商

任务访问策略

任务访问策略类,用于判断给定的创建人员是否允许执行某个任务,指定合法参与者对象。

  • 实现任务访问策略接口 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();
    }
}

更适合中国人的工作流引擎