mirror of
				https://github.com/dromara/RuoYi-Vue-Plus.git
				synced 2025-11-04 16:23:42 +08:00 
			
		
		
		
	update 优化工作流办理人权限处理器
This commit is contained in:
		@@ -1,22 +1,16 @@
 | 
			
		||||
package org.dromara.workflow.handler;
 | 
			
		||||
 | 
			
		||||
import cn.hutool.core.util.ObjectUtil;
 | 
			
		||||
import lombok.RequiredArgsConstructor;
 | 
			
		||||
import lombok.extern.slf4j.Slf4j;
 | 
			
		||||
import org.dromara.common.core.domain.model.LoginUser;
 | 
			
		||||
import org.dromara.workflow.common.ConditionalOnEnable;
 | 
			
		||||
import org.dromara.workflow.common.enums.TaskAssigneeEnum;
 | 
			
		||||
import org.dromara.common.satoken.utils.LoginHelper;
 | 
			
		||||
import org.dromara.warm.flow.core.dto.FlowParams;
 | 
			
		||||
import org.dromara.warm.flow.core.handler.PermissionHandler;
 | 
			
		||||
import org.dromara.warm.flow.core.service.impl.TaskServiceImpl;
 | 
			
		||||
import org.dromara.workflow.common.ConditionalOnEnable;
 | 
			
		||||
import org.springframework.stereotype.Component;
 | 
			
		||||
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.Collection;
 | 
			
		||||
import java.util.Collections;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.stream.Collectors;
 | 
			
		||||
import java.util.stream.Stream;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 办理人权限处理器
 | 
			
		||||
@@ -36,28 +30,7 @@ public class WorkflowPermissionHandler implements PermissionHandler {
 | 
			
		||||
     */
 | 
			
		||||
    @Override
 | 
			
		||||
    public List<String> permissions() {
 | 
			
		||||
        LoginUser loginUser = LoginHelper.getLoginUser();
 | 
			
		||||
        if (ObjectUtil.isNull(loginUser)) {
 | 
			
		||||
            return new ArrayList<>();
 | 
			
		||||
        }
 | 
			
		||||
        // 使用一个流来构建权限列表
 | 
			
		||||
        return Stream.of(
 | 
			
		||||
                // 角色权限前缀
 | 
			
		||||
                loginUser.getRoles().stream()
 | 
			
		||||
                    .map(role -> TaskAssigneeEnum.ROLE.getCode() + role.getRoleId()),
 | 
			
		||||
 | 
			
		||||
                // 岗位权限前缀
 | 
			
		||||
                Stream.ofNullable(loginUser.getPosts())
 | 
			
		||||
                    .flatMap(Collection::stream)
 | 
			
		||||
                    .map(post -> TaskAssigneeEnum.POST.getCode() + post.getPostId()),
 | 
			
		||||
 | 
			
		||||
                // 用户和部门权限
 | 
			
		||||
                Stream.of(String.valueOf(loginUser.getUserId()),
 | 
			
		||||
                    TaskAssigneeEnum.DEPT.getCode() + loginUser.getDeptId()
 | 
			
		||||
                )
 | 
			
		||||
            )
 | 
			
		||||
            .flatMap(stream -> stream)
 | 
			
		||||
            .collect(Collectors.toList());
 | 
			
		||||
        return Collections.singletonList(LoginHelper.getUserIdStr());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user