diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionListPane.java b/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionListPane.java index baa1f74059..a7f606a141 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionListPane.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionListPane.java @@ -262,7 +262,12 @@ public class ConnectionListPane extends JListControlPane implements ConnectionSh */ private boolean needUpdate0(Connection origin, Connection connection) { // 先不考虑插件 - return !connection.equals(origin); + try { + return !connection.equals(origin); + } catch (Exception e) { + FineLoggerFactory.getLogger().error(e.getMessage(), e); + return false; + } } /** diff --git a/designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java b/designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java index ebceb6b141..16d7a054b8 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java @@ -1,5 +1,6 @@ package com.fr.design.mainframe; +import com.fanruan.datasource.web.bean.ConnectionAuthorityConfigBean; import com.fanruan.product.ProductConstants; import com.fine.theme.icon.LazyIcon; import com.fr.base.Parameter; @@ -101,6 +102,7 @@ import com.fr.widgettheme.designer.WidgetThemeDisplayAction; import com.fr.workspace.WorkContext; import com.fr.workspace.server.lock.TplOperator; import com.fr.workspace.server.repository.WorkplaceConstants; +import com.fr.workspace.server.repository.connection.ConnectionRepository; import com.fr.workspace.server.repository.template.TemplateRepository; import javax.swing.BorderFactory; @@ -1749,7 +1751,8 @@ public abstract class JTemplate> } private boolean checkJTemplateAuthority() { - if (!WorkplaceConstants.isConnectionEditAuth()) { + ConnectionAuthorityConfigBean bean = ConnectionRepository.getInstance().getConnectionAuthorityConfig(); + if (!(bean !=null && bean.isConnectionEditAuth())) { return true; } JTemplateAuthorityChecker jTemplateAuthorityChecker = new JTemplateAuthorityChecker(this); 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 a0ed56876d..c0d6247905 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 @@ -29,9 +29,7 @@ import static javax.swing.JOptionPane.WARNING_MESSAGE; public class JTemplateAuthorityChecker { JTemplate jTemplate; - Set allConnectionNames; Set authConnectionNames; - Set allDatasetNames; Set authDatasetNames; Map checkerMap = new HashMap<>(); Set authFailConnectionNames = new HashSet<>(); @@ -47,13 +45,7 @@ public class JTemplateAuthorityChecker { } private void initAuthNames() { - allDatasetNames = new HashSet<>(); - for (String authServerDataSetName : TableDataConfigProviderFactory.getInstance().getTableDatas().keySet()) { - allDatasetNames.add(authServerDataSetName); - } - - allConnectionNames = ConnectionConfigProviderFactory.getConfigProvider().getConnections().keySet(); - + // 无需获取所有数据集和数据连接了,当前只能获取自己有权限的 Map> authNamesMap = RemoteAuthorityRepository.getInstance().getAuthServerDataSetAndConnectionNames(WorkContext.getCurrent().getConnection().getUserName()); if (authNamesMap != null) { //有权限的数据连接名称 @@ -95,8 +87,6 @@ public class JTemplateAuthorityChecker { } } } - authFailConnectionNames.retainAll(allConnectionNames); - authFailDatasetNames.retainAll(allDatasetNames); FineLoggerFactory.getLogger().info("JTemplateAuthorityChecker check time consume:" + (System.currentTimeMillis() - s)); return authFailConnectionNames.size() == 0 && authFailDatasetNames.size() == 0; }