From b3418c8f48b42668bdc790ea64e0b94e4eda6214 Mon Sep 17 00:00:00 2001 From: lgcareer <18610854716@163.com> Date: Fri, 10 Jan 2020 14:31:58 +0800 Subject: [PATCH] update method listUnauthorizedResource in order to fix issues 1770 (#1797) --- .../apache/dolphinscheduler/dao/ProcessDao.java | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/ProcessDao.java b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/ProcessDao.java index d80c9c5fd..3cf2885a2 100644 --- a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/ProcessDao.java +++ b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/ProcessDao.java @@ -27,7 +27,10 @@ import org.apache.dolphinscheduler.common.model.TaskNode; import org.apache.dolphinscheduler.common.process.Property; import org.apache.dolphinscheduler.common.queue.ITaskQueue; import org.apache.dolphinscheduler.common.task.subprocess.SubProcessParameters; -import org.apache.dolphinscheduler.common.utils.*; +import org.apache.dolphinscheduler.common.utils.DateUtils; +import org.apache.dolphinscheduler.common.utils.IpUtils; +import org.apache.dolphinscheduler.common.utils.JSONUtils; +import org.apache.dolphinscheduler.common.utils.ParameterUtils; import org.apache.dolphinscheduler.dao.entity.*; import org.apache.dolphinscheduler.dao.mapper.*; import org.apache.dolphinscheduler.dao.utils.cron.CronUtils; @@ -41,7 +44,7 @@ import org.springframework.transaction.annotation.Transactional; import java.util.*; import java.util.stream.Collectors; -import static java.util.stream.Collectors.toList; +import static java.util.stream.Collectors.toSet; import static org.apache.dolphinscheduler.common.Constants.*; /** @@ -1774,12 +1777,14 @@ public class ProcessDao { public List listUnauthorizedResource(int userId,String[] resNames){ List resultList = new ArrayList(); - if(ArrayUtils.isNotEmpty(resNames)){ - List originResList = Arrays.asList(resNames); + if (ArrayUtils.isNotEmpty(resNames)) { + Set originResSet = new HashSet(Arrays.asList(resNames)); List authorizedResourceList = resourceMapper.listAuthorizedResource(userId, resNames); - List authorizedResNames = authorizedResourceList.stream().map(t -> t.getAlias()).collect(toList()); - resultList = originResList.stream().filter(item -> !authorizedResNames.contains(item)).collect(toList()); + Set authorizedResNames = authorizedResourceList.stream().map(t -> t.getAlias()).collect(toSet()); + originResSet.removeAll(authorizedResNames); + + resultList.addAll(originResSet); } return resultList; -- GitLab