From 0067ec5909ea38c74a6258551bbaaf88ef4bb897 Mon Sep 17 00:00:00 2001 From: "Destiny.Lin" Date: Tue, 24 Dec 2024 17:19:49 +0800 Subject: [PATCH 1/2] =?UTF-8?q?REPORT-139235=20=E3=80=90fr-fbp=E5=86=92?= =?UTF-8?q?=E7=83=9F=E3=80=91=E5=B9=B3=E5=8F=B0=E5=85=B3=E9=97=AD=E6=9D=83?= =?UTF-8?q?=E9=99=90=E6=8E=A7=E5=88=B6=EF=BC=8C=E6=AC=A1=E7=AE=A1=E5=BA=94?= =?UTF-8?q?=E8=AF=A5=E6=8B=A5=E6=9C=89=E6=89=80=E6=9C=89=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E8=BF=9E=E6=8E=A5=E7=9A=84=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/data/BasicTableDataTreePane.java | 7 ++-- .../fr/design/data/datapane/ChoosePane.java | 33 ++----------------- .../data/datapane/TableDataTreePane.java | 7 ++-- .../datapane/auth/TableDataAuthHelper.java | 15 --------- .../connect/ConnectionComboBoxPanel.java | 11 ------- .../env/function/app/DesignAppComponent.java | 2 -- 6 files changed, 11 insertions(+), 64 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/data/BasicTableDataTreePane.java b/designer-base/src/main/java/com/fr/design/data/BasicTableDataTreePane.java index 9ce92b756f..cf5249d8aa 100644 --- a/designer-base/src/main/java/com/fr/design/data/BasicTableDataTreePane.java +++ b/designer-base/src/main/java/com/fr/design/data/BasicTableDataTreePane.java @@ -38,6 +38,7 @@ import com.fr.general.NameObject; import com.fr.log.FineLoggerFactory; import com.fr.stable.StringUtils; import com.fr.workspace.WorkContext; +import com.fr.workspace.server.repository.connection.ConnectionRepository; import javax.swing.AbstractButton; import javax.swing.Action; @@ -471,11 +472,11 @@ public abstract class BasicTableDataTreePane extends DockingView implements Resp new SwingWorker() { @Override protected Boolean doInBackground() throws Exception { - // 获取无权限连接名称集合 - Collection noAuthConnections = TableDataAuthHelper.getNoAuthConnections(); + // 获取有权限的连接名称集合 + Collection authConnections = ConnectionRepository.getInstance().getConnNames(); // 获取当前数据集对应的数据连接名称 String connectionName = TableDataAuthHelper.getConnectionNameByDBTableData((DBTableData) wrapper.getTableData()); - return !noAuthConnections.contains(connectionName); + return authConnections.contains(connectionName); } @Override diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/ChoosePane.java b/designer-base/src/main/java/com/fr/design/data/datapane/ChoosePane.java index 49af47f2ca..ca97d5136b 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/ChoosePane.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/ChoosePane.java @@ -1,9 +1,7 @@ package com.fr.design.data.datapane; -import com.fanruan.config.impl.data.ConnectionConfigProviderFactory; import com.fr.base.TableData; import com.fr.data.core.DataCoreUtils; -import com.fr.data.core.db.DBUtils; import com.fr.data.core.db.TableProcedure; import com.fr.data.core.db.dialect.Dialect; import com.fr.data.core.db.dialect.DialectFactory; @@ -39,14 +37,9 @@ import com.fr.general.IOUtils; import com.fr.log.FineLoggerFactory; import com.fr.stable.StringUtils; import com.fr.workspace.WorkContext; -import com.fr.workspace.server.repository.authority.RemoteAuthorityRepository; import com.fr.workspace.server.repository.connection.ConnectionRepository; -import javax.swing.JList; -import javax.swing.JOptionPane; -import javax.swing.JPanel; -import javax.swing.JTree; -import javax.swing.SwingWorker; +import javax.swing.*; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import javax.swing.event.PopupMenuEvent; @@ -56,21 +49,14 @@ import javax.swing.tree.DefaultTreeCellRenderer; import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.TreeCellRenderer; import javax.swing.tree.TreePath; -import java.awt.BorderLayout; -import java.awt.Component; -import java.awt.Dimension; +import java.awt.*; import java.awt.event.FocusAdapter; import java.awt.event.FocusEvent; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.util.ArrayList; -import java.util.Collection; import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; import java.util.List; -import java.util.Map; -import java.util.Set; import java.util.concurrent.CancellationException; /** @@ -339,20 +325,7 @@ public class ChoosePane extends BasicBeanPane implements Refresha } private List getHasAuthConnections() { - List authConnections = new ArrayList<>(); - Set allConnections = new HashSet<>(ConnectionRepository.getInstance().getConnNames()); - // 待实现 - Collection noAuthConnections = RemoteAuthorityRepository.getInstance().getNoAuthConnections(); - if (noAuthConnections == null) { - return authConnections; - } - - for (String name : allConnections) { - if (!noAuthConnections.contains(name)) { - authConnections.add(name); - } - } - return authConnections; + return ConnectionRepository.getInstance().getConnNames(); } /** diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/TableDataTreePane.java b/designer-base/src/main/java/com/fr/design/data/datapane/TableDataTreePane.java index 861e070214..9245c8ce30 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/TableDataTreePane.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/TableDataTreePane.java @@ -71,6 +71,7 @@ import com.fr.plugin.observer.PluginEventListener; import com.fr.stable.StringUtils; import com.fr.stable.core.PropertyChangeAdapter; import com.fr.workspace.WorkContext; +import com.fr.workspace.server.repository.connection.ConnectionRepository; import org.jetbrains.annotations.NotNull; import javax.swing.Icon; @@ -1056,11 +1057,11 @@ public class TableDataTreePane extends BasicTableDataTreePane { new SwingWorker() { @Override protected Boolean doInBackground() throws Exception { - // 获取无权限连接名称集合 - Collection noAuthConnections = TableDataAuthHelper.getNoAuthConnections(); + // 获取有权限的连接名称集合 + Collection authConnections = ConnectionRepository.getInstance().getConnNames(); // 获取当前数据集对应的数据连接名称 String connectionName = TableDataAuthHelper.getConnectionNameByDBTableData((DBTableData) wrapper.getTableData()); - return !noAuthConnections.contains(connectionName); + return authConnections.contains(connectionName); } @Override diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/auth/TableDataAuthHelper.java b/designer-base/src/main/java/com/fr/design/data/datapane/auth/TableDataAuthHelper.java index 79bc1816e4..426f364002 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/auth/TableDataAuthHelper.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/auth/TableDataAuthHelper.java @@ -6,11 +6,6 @@ import com.fr.data.impl.DBTableData; import com.fr.data.impl.NameDatabaseConnection; import com.fr.stable.StringUtils; import com.fr.workspace.WorkContext; -import com.fr.workspace.server.connection.DBConnectAuth; -import com.fr.workspace.server.repository.authority.RemoteAuthorityRepository; - -import java.util.Collection; -import java.util.Collections; /** * 数据连接权限相关的工具类 @@ -28,16 +23,6 @@ public class TableDataAuthHelper { return !WorkContext.getCurrent().isLocal() && tableData instanceof DBTableData; } - /** - * 获取无权限数据连接集合 - * 远程下需要调用RPC,为耗时操作,谨慎使用 - * @return - */ - public static Collection getNoAuthConnections() { - // 获取无权限连接集合 - Collection noAuthConnections = RemoteAuthorityRepository.getInstance().getNoAuthConnections(); - return noAuthConnections == null ? Collections.emptyList() : noAuthConnections; - } /** * 通过数据集获取其数据连接的名称 diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionComboBoxPanel.java b/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionComboBoxPanel.java index 9d4774b7de..8c13552822 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionComboBoxPanel.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionComboBoxPanel.java @@ -13,7 +13,6 @@ import com.fr.design.gui.ibutton.UILockButton; import com.fr.report.LockItem; import com.fr.stable.StringUtils; import com.fr.workspace.WorkContext; -import com.fr.workspace.server.repository.authority.RemoteAuthorityRepository; import javax.swing.SwingUtilities; import java.awt.Dimension; @@ -22,7 +21,6 @@ import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.util.ArrayList; -import java.util.Collection; import java.util.Iterator; import java.util.List; import java.util.Map; @@ -80,19 +78,10 @@ public class ConnectionComboBoxPanel extends ItemEditableComboBoxPanel { * 刷新ComboBox.items */ protected Iterator items() { - Collection noAuthConnections = RemoteAuthorityRepository.getInstance().getNoAuthConnections(); - nameList = new ArrayList<>(); - - if (noAuthConnections == null) { - return nameList.iterator(); - } final Map connectionMap = ConnectionInfoBeanHelper.getCurrentConnectionMap(); for (Map.Entry connectionEntry : connectionMap.entrySet()) { String conName = connectionEntry.getKey(); - if (noAuthConnections.contains(conName)) { - continue; - } filterConnection(connectionEntry.getValue(), conName, nameList); } return nameList.iterator(); diff --git a/designer-realize/src/main/java/com/fanruan/boot/env/function/app/DesignAppComponent.java b/designer-realize/src/main/java/com/fanruan/boot/env/function/app/DesignAppComponent.java index aec58e3e81..a25b9e3f5c 100644 --- a/designer-realize/src/main/java/com/fanruan/boot/env/function/app/DesignAppComponent.java +++ b/designer-realize/src/main/java/com/fanruan/boot/env/function/app/DesignAppComponent.java @@ -10,7 +10,6 @@ import com.fr.design.mainframe.App; import com.fr.design.mainframe.AppGroup; import com.fr.design.mainframe.JTemplateFactory; import com.fr.nx.app.designer.CptxApp; -import com.fr.workspace.server.repository.authority.RemoteAuthorityRepository; import java.util.ArrayList; import java.util.List; @@ -44,7 +43,6 @@ public class DesignAppComponent { */ @Stop public void stop() { - RemoteAuthorityRepository.getInstance().invalidCache(); List appList = new ArrayList<>(Carina.getApplicationContext().group(AppGroup.class).getAll()); for (App app : appList) { JTemplateFactory.remove(app); From 2bd48080fbc5b8979a517cb82e59924e077336d8 Mon Sep 17 00:00:00 2001 From: "Destiny.Lin" Date: Wed, 25 Dec 2024 10:36:52 +0800 Subject: [PATCH 2/2] =?UTF-8?q?REPORT-145056=20=E3=80=90fr-fbp=E3=80=91?= =?UTF-8?q?=E7=9B=B4=E6=8E=A5=E8=BF=9C=E7=A8=8B=E4=BF=9D=E5=AD=98=E7=9A=84?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF=EF=BC=8C=E5=A6=82=E6=9E=9C=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E9=93=BE=E6=8E=A5=E4=B8=8D=E5=AD=98=E5=9C=A8=EF=BC=8C=E6=83=B3?= =?UTF-8?q?=E8=A6=81=E5=88=87=E6=8D=A2=E6=95=B0=E6=8D=AE=E8=BF=9E=E6=8E=A5?= =?UTF-8?q?=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/datapane/preview/ConnectionInfoBeanHelper.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/preview/ConnectionInfoBeanHelper.java b/designer-base/src/main/java/com/fr/design/data/datapane/preview/ConnectionInfoBeanHelper.java index b1adba8b09..6211b572b4 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/preview/ConnectionInfoBeanHelper.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/preview/ConnectionInfoBeanHelper.java @@ -40,6 +40,7 @@ import com.fr.workspace.server.repository.WorkplaceConstants; import com.fr.workspace.server.repository.connection.ConnectionCacheEvent; import com.fr.workspace.server.repository.connection.ConnectionRepository; import com.fr.workspace.server.repository.tabledata.DataEncryptionHelper; +import org.jetbrains.annotations.Nullable; import java.util.HashMap; import java.util.Map; @@ -123,8 +124,12 @@ public class ConnectionInfoBeanHelper { /** * 根据bean创建连接 */ + @Nullable public static Connection createConnection(ConnectionInfoBean infoBean) { try { + if (infoBean == null) { + return null; + } Connection connection = cache.get(VALUE).get(infoBean.getConnectionName()); if (connection != null) { connection.setConnectionName(infoBean.getConnectionName());