From 80c26a2bdc3ed7105af3a7891eda69fc52e16b5c Mon Sep 17 00:00:00 2001 From: "Destiny.Lin" Date: Fri, 27 Sep 2024 18:24:00 +0800 Subject: [PATCH] =?UTF-8?q?REPORT-135879=20=E3=80=90fr-fbp=E5=9B=9E?= =?UTF-8?q?=E5=BD=92=E3=80=91=E6=AC=A1=E7=AE=A1=E4=BF=9D=E5=AD=98=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E4=B8=AD=E5=BF=83=E6=A8=A1=E6=9D=BF=EF=BC=8C=E6=8A=A5?= =?UTF-8?q?=E9=94=99=E6=B2=A1=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../authority/JTemplateAuthorityChecker.java | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/mainframe/authority/JTemplateAuthorityChecker.java b/designer-base/src/main/java/com/fr/design/mainframe/authority/JTemplateAuthorityChecker.java index c0d6247905..e661add2fa 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/authority/JTemplateAuthorityChecker.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/authority/JTemplateAuthorityChecker.java @@ -1,29 +1,23 @@ package com.fr.design.mainframe.authority; -import com.fanruan.config.impl.data.ConnectionConfigProviderFactory; -import com.fanruan.config.impl.data.TableDataConfigProviderFactory; -import com.fr.base.CloneCollector; import com.fr.design.dialog.FineJOptionPane; - import com.fr.design.i18n.Toolkit; import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.JTemplate; - import com.fr.log.FineLoggerFactory; import com.fr.workspace.WorkContext; import com.fr.workspace.server.authority.user.UserAuthority; import com.fr.workspace.server.repository.authority.RemoteAuthorityRepository; - import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; +import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; - import static javax.swing.JOptionPane.WARNING_MESSAGE; @@ -31,6 +25,7 @@ public class JTemplateAuthorityChecker { JTemplate jTemplate; Set authConnectionNames; Set authDatasetNames; + Set templateDatasetNames; Map checkerMap = new HashMap<>(); Set authFailConnectionNames = new HashSet<>(); Set authFailDatasetNames = new HashSet<>(); @@ -45,7 +40,12 @@ public class JTemplateAuthorityChecker { } private void initAuthNames() { - // 无需获取所有数据集和数据连接了,当前只能获取自己有权限的 + // 无需获取所有服务器数据集和数据连接了,因为当前只能获取自己有权限的,只要拿一下模板数据集就行 + templateDatasetNames = new HashSet<>(); + Iterator tableDataNameIterator = jTemplate.getTarget().getTableDataNameIterator(); + while (tableDataNameIterator.hasNext()) { + templateDatasetNames.add(tableDataNameIterator.next()); + } Map> authNamesMap = RemoteAuthorityRepository.getInstance().getAuthServerDataSetAndConnectionNames(WorkContext.getCurrent().getConnection().getUserName()); if (authNamesMap != null) { //有权限的数据连接名称 @@ -87,6 +87,8 @@ public class JTemplateAuthorityChecker { } } } + // 排除模板数据集的部分 + authFailDatasetNames.removeAll(templateDatasetNames); FineLoggerFactory.getLogger().info("JTemplateAuthorityChecker check time consume:" + (System.currentTimeMillis() - s)); return authFailConnectionNames.size() == 0 && authFailDatasetNames.size() == 0; }