From 8fa4e3a26ebdbcabbb9345de992329b4baa1c214 Mon Sep 17 00:00:00 2001 From: Ruslan Date: Tue, 27 Jan 2026 16:43:46 +0100 Subject: [PATCH 1/6] dbeaver/pro#8044 add api for database user preference --- .../cloudbeaver/model/WebConnectionConfig.java | 13 +++++++++++++ .../schema/service.core.graphqls | 3 +++ .../service/core/DBWServiceCore.java | 9 +++++++++ .../service/core/WebServiceBindingCore.java | 7 +++++++ .../service/core/impl/WebServiceCore.java | 18 ++++++++++++++++++ 5 files changed, 50 insertions(+) diff --git a/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/WebConnectionConfig.java b/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/WebConnectionConfig.java index 277e59c85d9..1aa7bae58ad 100644 --- a/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/WebConnectionConfig.java +++ b/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/WebConnectionConfig.java @@ -23,6 +23,7 @@ import org.jkiss.dbeaver.model.meta.Property; import java.util.ArrayList; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -64,6 +65,8 @@ public class WebConnectionConfig { private Boolean defaultAutoCommit; private String defaultCatalogName; private String defaultSchemaName; + @NotNull + private Map defaultUserSettings = new LinkedHashMap<>(); public WebConnectionConfig() { } @@ -111,6 +114,7 @@ public WebConnectionConfig(@NotNull Map params) { String configType = JSONUtils.getString(params, "configurationType"); configurationType = configType == null ? null : DBPDriverConfigurationType.valueOf(configType); + defaultUserSettings = JSONUtils.getObject(params, "defaultUserSettings"); networkHandlersConfig = new ArrayList<>(); for (Map nhc : JSONUtils.getObjectList(params, "networkHandlersConfig")) { networkHandlersConfig.add(new WebNetworkHandlerConfigInput(nhc)); @@ -367,4 +371,13 @@ public String getDefaultSchemaName() { public void setDefaultSchemaName(String defaultSchemaName) { this.defaultSchemaName = defaultSchemaName; } + + @NotNull + public Map getDefaultUserSettings() { + return defaultUserSettings; + } + + public void setDefaultUserSettings(@NotNull Map defaultUserSettings) { + this.defaultUserSettings = defaultUserSettings; + } } diff --git a/server/bundles/io.cloudbeaver.server/schema/service.core.graphqls b/server/bundles/io.cloudbeaver.server/schema/service.core.graphqls index 86db10b4f88..ce9c0320f9a 100644 --- a/server/bundles/io.cloudbeaver.server/schema/service.core.graphqls +++ b/server/bundles/io.cloudbeaver.server/schema/service.core.graphqls @@ -737,6 +737,8 @@ input ConnectionConfig { defaultCatalogName: String @since(version: "25.0.5") @deprecated(reason: "25.2.1 use expertPropertyValues instead") "Sets schema name for the connection" defaultSchemaName: String @since(version: "25.0.5") @deprecated(reason: "25.2.1 use expertPropertyValues instead") + "Default user settings for connection" + defaultUserSettings: Object @since(version: "25.3.5") } #################################################### @@ -842,6 +844,7 @@ extend type Mutation { "Sets to default navigator settings for connection. Resets all user navigator settings for this connection." clearConnectionNavigatorSettings(projectId: ID!, id: ID! ): ConnectionInfo! @since(version: "25.3.2") + setObjectSettings(id: ID!, projectId:ID, settings: Object!): Object! @since(version: "25.3.5") #### Generic async functions "Cancel async task by ID" diff --git a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/core/DBWServiceCore.java b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/core/DBWServiceCore.java index 0f5a46f57df..6eb26577d0d 100644 --- a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/core/DBWServiceCore.java +++ b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/core/DBWServiceCore.java @@ -24,6 +24,7 @@ import jakarta.servlet.http.HttpServletResponse; import org.jkiss.code.NotNull; import org.jkiss.code.Nullable; +import org.jkiss.dbeaver.DBException; import org.jkiss.dbeaver.model.rm.RMConstants; import org.jkiss.dbeaver.registry.DataSourceNavigatorSettings; import org.jkiss.dbeaver.registry.settings.ProductSettingDescriptor; @@ -213,6 +214,14 @@ WebConnectionInfo clearConnectionNavigatorSettings( @NotNull String id ) throws DBWebException; + Object setObjectSettings( + @NotNull WebSession webSession, + @NotNull String projectId, + @NotNull String objectType, + @NotNull String objectId, + @NotNull Map settings + ) throws DBException; + /////////////////////////////////////////// // Async tasks diff --git a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/core/WebServiceBindingCore.java b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/core/WebServiceBindingCore.java index b5ff5c892a9..045fe3a15f1 100644 --- a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/core/WebServiceBindingCore.java +++ b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/core/WebServiceBindingCore.java @@ -159,6 +159,13 @@ public void bindWiring(DBWBindingContext model) throws DBWebException { getArgumentVal(env, "id") ) ) + .dataFetcher("setObjectSettings", env -> getService(env).setObjectSettings( + getWebSession(env), + getProjectReference(env), + getArgumentVal(env, "objectType"), + getArgumentVal(env, "objectId"), + getArgumentVal(env, "settings") + )) .dataFetcher("asyncTaskInfo", env -> getService(env).getAsyncTaskInfo( getWebSession(env), diff --git a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/core/impl/WebServiceCore.java b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/core/impl/WebServiceCore.java index 79126fb6f3a..fde802f762b 100644 --- a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/core/impl/WebServiceCore.java +++ b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/core/impl/WebServiceCore.java @@ -58,6 +58,7 @@ import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor; import org.jkiss.dbeaver.model.secret.DBSSecretController; import org.jkiss.dbeaver.model.secret.DBSSecretValue; +import org.jkiss.dbeaver.model.security.SMObjectType; import org.jkiss.dbeaver.registry.DataSourceDescriptor; import org.jkiss.dbeaver.registry.DataSourceNavigatorSettings; import org.jkiss.dbeaver.registry.DataSourceNavigatorSettingsUtils; @@ -758,6 +759,23 @@ public WebConnectionInfo clearConnectionNavigatorSettings( return connectionInfo; } + @Override + public Object setObjectSettings( + @NotNull WebSession webSession, + @NotNull String projectId, + @NotNull String objectType, + @NotNull String objectId, + @NotNull Map settings + ) throws DBException { + + SMObjectType smObjectType = SMObjectType.valueOf(objectType); + webSession.getSecurityController().setObjectSettings(projectId, smObjectType, objectId, settings); + //fixme return proper object + return settings.entrySet().stream() + .filter(e -> e.getValue() != null) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); + } + @Override public WebAsyncTaskInfo getAsyncTaskInfo(WebSession webSession, String taskId, Boolean removeOnFinish) throws DBWebException { From 5d04652f666c8456311b019a57eb1af7ee354cc1 Mon Sep 17 00:00:00 2001 From: Ruslan Date: Thu, 29 Jan 2026 09:26:06 +0100 Subject: [PATCH 2/6] dbeaver/pro#8044 set to prefstore --- .../io/cloudbeaver/WebConnectionConfigInputHandler.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/WebConnectionConfigInputHandler.java b/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/WebConnectionConfigInputHandler.java index 57614a98d08..70b11f95063 100644 --- a/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/WebConnectionConfigInputHandler.java +++ b/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/WebConnectionConfigInputHandler.java @@ -27,8 +27,11 @@ import org.jkiss.dbeaver.model.connection.DBPConnectionConfiguration; import org.jkiss.dbeaver.model.connection.DBPDriver; import org.jkiss.dbeaver.registry.DataSourceDescriptor; +import org.jkiss.dbeaver.registry.DataSourcePreferenceStore; import org.jkiss.utils.CommonUtils; +import java.util.Map; + public class WebConnectionConfigInputHandler { private static final Log log = Log.getLog(WebConnectionConfigInputHandler.class); protected final T input; @@ -93,6 +96,11 @@ public void updateDataSource(@NotNull C dataSource) throws DBWebException { input.isSharedCredentials() ); dataSource.setConnectionReadOnly(input.isReadOnly()); + DataSourcePreferenceStore preferenceStore = dataSource.getPreferenceStore(); + Map defaultUserSettings = input.getDefaultUserSettings(); + for (Map.Entry entry : defaultUserSettings.entrySet()) { + preferenceStore.setValue(entry.getKey(), (String)entry.getValue()); + } } @NotNull From 1c790a91a82e3c16690127fb41c327d00de7e68a Mon Sep 17 00:00:00 2001 From: Ruslan Date: Fri, 30 Jan 2026 09:50:52 +0100 Subject: [PATCH 3/6] dbeaver/pro#8044 add api for database user preference --- .../WebGlobalProjectRegistryProxy.java | 5 +++ .../cloudbeaver/model/WebConnectionInfo.java | 11 ++++++ .../cloudbeaver/model/session/WebSession.java | 34 ++++++++++++++----- .../schema/service.core.graphqls | 2 +- .../service/core/WebServiceBindingCore.java | 2 +- .../service/core/impl/WebServiceCore.java | 1 + 6 files changed, 45 insertions(+), 10 deletions(-) diff --git a/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/WebGlobalProjectRegistryProxy.java b/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/WebGlobalProjectRegistryProxy.java index 6eb54b4f78a..59c75f886e8 100644 --- a/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/WebGlobalProjectRegistryProxy.java +++ b/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/WebGlobalProjectRegistryProxy.java @@ -416,6 +416,11 @@ public void resolveSecrets(DBSSecretController secretController) throws DBExcept dataSourceRegistry.resolveSecrets(secretController); } + @Override + public DBPObjectSettingsProvider getDatasourceSettingsProvider() { + return webSession; + } + /** * Event listener proxy. * For some cases (like creating data source) we should not send event because of accessibility of connection. diff --git a/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/WebConnectionInfo.java b/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/WebConnectionInfo.java index b77f5e3291a..f7c7d09ce6f 100644 --- a/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/WebConnectionInfo.java +++ b/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/WebConnectionInfo.java @@ -39,11 +39,13 @@ import org.jkiss.dbeaver.model.meta.Property; import org.jkiss.dbeaver.model.navigator.DBNBrowseSettings; import org.jkiss.dbeaver.model.navigator.DBNDataSource; +import org.jkiss.dbeaver.model.preferences.DBPPreferenceStore; import org.jkiss.dbeaver.model.preferences.DBPPropertyDescriptor; import org.jkiss.dbeaver.model.preferences.DBPPropertySource; import org.jkiss.dbeaver.model.rm.RMConstants; import org.jkiss.dbeaver.model.rm.RMProjectPermission; import org.jkiss.dbeaver.model.runtime.DBRRunnableParametrized; +import org.jkiss.dbeaver.registry.DataSourcePreferenceStore; import org.jkiss.dbeaver.registry.network.NetworkHandlerDescriptor; import org.jkiss.dbeaver.registry.network.NetworkHandlerRegistry; import org.jkiss.dbeaver.runtime.DBWorkbench; @@ -572,4 +574,13 @@ public List getTools() { public void setCredentialsSavedInSession(@Nullable Boolean credentialsSavedInSession) { this.credentialsSavedInSession = credentialsSavedInSession; } + + + public Map getConnectionPreferences() { + DBPPreferenceStore preferenceStore = dataSourceContainer.getPreferenceStore(); + if (preferenceStore instanceof DataSourcePreferenceStore dataSourcePreferenceStore) { + return dataSourcePreferenceStore.getProperties(); + } + return Collections.emptyMap(); + } } diff --git a/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/session/WebSession.java b/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/session/WebSession.java index cf19260b39b..f939501f4fa 100644 --- a/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/session/WebSession.java +++ b/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/session/WebSession.java @@ -33,10 +33,7 @@ import org.jkiss.code.Nullable; import org.jkiss.dbeaver.DBException; import org.jkiss.dbeaver.Log; -import org.jkiss.dbeaver.model.DBFileController; -import org.jkiss.dbeaver.model.DBPAdaptable; -import org.jkiss.dbeaver.model.DBPDataSourceContainer; -import org.jkiss.dbeaver.model.DBPEventListener; +import org.jkiss.dbeaver.model.*; import org.jkiss.dbeaver.model.access.DBAAuthCredentials; import org.jkiss.dbeaver.model.access.DBACredentialsProvider; import org.jkiss.dbeaver.model.auth.*; @@ -49,9 +46,7 @@ import org.jkiss.dbeaver.model.runtime.AbstractJob; import org.jkiss.dbeaver.model.runtime.BaseProgressMonitor; import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor; -import org.jkiss.dbeaver.model.security.SMAdminController; -import org.jkiss.dbeaver.model.security.SMConstants; -import org.jkiss.dbeaver.model.security.SMController; +import org.jkiss.dbeaver.model.security.*; import org.jkiss.dbeaver.model.sql.DBQuotaException; import org.jkiss.dbeaver.model.websocket.event.MessageType; import org.jkiss.dbeaver.model.websocket.event.WSSessionLogUpdatedEvent; @@ -73,7 +68,7 @@ */ //TODO: split to authenticated and non authenticated context public class WebSession extends BaseWebSession - implements SMSessionWithAuth, SMCredentialsProvider, DBACredentialsProvider, DBPAdaptable { + implements SMSessionWithAuth, SMCredentialsProvider, DBACredentialsProvider, DBPAdaptable, DBPObjectSettingsProvider { private static final Log log = Log.getLog(WebSession.class); @@ -1029,6 +1024,29 @@ public WebSessionGlobalProjectImpl getGlobalProject() { return globalProject; } + @Override + public void clearObjectSettings(@NotNull String projectId, @NotNull SMObjectType objectType, @NotNull String objectId, @NotNull Set settings) + throws DBException { + //fixme + } + + @Nullable + @Override + public Map getObjectSettings(@NotNull String projectId, @NotNull SMObjectType objectType, @NotNull String objectId) { + try { + List objectSettings = this.getSecurityController().getObjectSettings(projectId, objectType, objectId, null); + return objectSettings.isEmpty() ? null : objectSettings.getFirst().settings(); + } catch (DBException e) { + throw new RuntimeException(e); + } + } + + @Override + public void setObjectSettings(@NotNull String projectId, @NotNull SMObjectType objectType, @NotNull String objectId, @NotNull Map settings) + throws DBException { + this.getSecurityController().setObjectSettings(projectId, objectType, objectId, settings); + } + public void handleTaskConfirmation( @NotNull String taskId, boolean confirmed, diff --git a/server/bundles/io.cloudbeaver.server/schema/service.core.graphqls b/server/bundles/io.cloudbeaver.server/schema/service.core.graphqls index ce9c0320f9a..cad1349e8ac 100644 --- a/server/bundles/io.cloudbeaver.server/schema/service.core.graphqls +++ b/server/bundles/io.cloudbeaver.server/schema/service.core.graphqls @@ -844,7 +844,7 @@ extend type Mutation { "Sets to default navigator settings for connection. Resets all user navigator settings for this connection." clearConnectionNavigatorSettings(projectId: ID!, id: ID! ): ConnectionInfo! @since(version: "25.3.2") - setObjectSettings(id: ID!, projectId:ID, settings: Object!): Object! @since(version: "25.3.5") + setObjectSettings(id: ID!, projectId:ID, objectType: String, settings: Object!): Object! @since(version: "25.3.5") #### Generic async functions "Cancel async task by ID" diff --git a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/core/WebServiceBindingCore.java b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/core/WebServiceBindingCore.java index 045fe3a15f1..81a40f438c1 100644 --- a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/core/WebServiceBindingCore.java +++ b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/core/WebServiceBindingCore.java @@ -163,7 +163,7 @@ public void bindWiring(DBWBindingContext model) throws DBWebException { getWebSession(env), getProjectReference(env), getArgumentVal(env, "objectType"), - getArgumentVal(env, "objectId"), + getArgumentVal(env, "id"), getArgumentVal(env, "settings") )) diff --git a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/core/impl/WebServiceCore.java b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/core/impl/WebServiceCore.java index fde802f762b..30fd7f14783 100644 --- a/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/core/impl/WebServiceCore.java +++ b/server/bundles/io.cloudbeaver.server/src/io/cloudbeaver/service/core/impl/WebServiceCore.java @@ -134,6 +134,7 @@ public List getUserConnections( ) throws DBWebException { if (id != null) { WebConnectionInfo connectionInfo = getConnectionState(webSession, projectId, id); + Map connectionPreferences = connectionInfo.getConnectionPreferences(); if (connectionInfo != null) { return Collections.singletonList(connectionInfo); } From 278729883f41cdd74ab62a224318352c144b3376 Mon Sep 17 00:00:00 2001 From: Ruslan Date: Fri, 30 Jan 2026 15:36:34 +0100 Subject: [PATCH 4/6] dbeaver/pro#8044 add api for database pref --- .../src/io/cloudbeaver/model/WebConnectionInfo.java | 1 + 1 file changed, 1 insertion(+) diff --git a/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/WebConnectionInfo.java b/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/WebConnectionInfo.java index 4cd8c95153c..47639c89b05 100644 --- a/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/WebConnectionInfo.java +++ b/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/WebConnectionInfo.java @@ -582,6 +582,7 @@ public void setCredentialsSavedInSession(@Nullable Boolean credentialsSavedInSes } + @Property public Map getConnectionPreferences() { DBPPreferenceStore preferenceStore = dataSourceContainer.getPreferenceStore(); if (preferenceStore instanceof DataSourcePreferenceStore dataSourcePreferenceStore) { From 8db0485ffdd7cc4b81fbbb3dbe469441b76a204f Mon Sep 17 00:00:00 2001 From: Ruslan Date: Mon, 2 Feb 2026 22:18:25 +0100 Subject: [PATCH 5/6] dbeaver/pro#8044 add api for database pref --- .../src/io/cloudbeaver/model/WebConnectionInfo.java | 10 ++++++++++ .../io.cloudbeaver.server/schema/service.core.graphqls | 2 ++ 2 files changed, 12 insertions(+) diff --git a/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/WebConnectionInfo.java b/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/WebConnectionInfo.java index 47639c89b05..558815ede9c 100644 --- a/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/WebConnectionInfo.java +++ b/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/WebConnectionInfo.java @@ -295,6 +295,16 @@ public DBNBrowseSettings getDefaultNavigatorSettings() { return dataSourceContainer.getNavigatorSettings().getOriginalSettings(); } + @Property + @NotNull + public Map defaultUserSettings() { + DBPPreferenceStore preferenceStore = dataSourceContainer.getPreferenceStore(); + if (preferenceStore instanceof DataSourcePreferenceStore dataSourcePreferenceStore) { + return dataSourcePreferenceStore.getProperties(); + } + return Collections.emptyMap(); + } + @Property @NotNull public List getSupportedDataFormats() { diff --git a/server/bundles/io.cloudbeaver.server/schema/service.core.graphqls b/server/bundles/io.cloudbeaver.server/schema/service.core.graphqls index 846f1e1265f..11657345e52 100644 --- a/server/bundles/io.cloudbeaver.server/schema/service.core.graphqls +++ b/server/bundles/io.cloudbeaver.server/schema/service.core.graphqls @@ -565,6 +565,8 @@ type ConnectionInfo { requiredAuth: String defaultCatalogName: String @since(version: "25.0.5") defaultSchemaName: String @since(version: "25.0.5") + "Default user settings for connection" + defaultUserSettings: Object @since(version: "25.3.5") "List of tools that can be used with this connection. Returns empty list if no tools are available" tools: [String!]! @since(version: "24.1.3") From f77fd3ad5aa55704139ffa6307cae3e9d80b0ebc Mon Sep 17 00:00:00 2001 From: Ruslan Date: Tue, 3 Feb 2026 12:37:09 +0100 Subject: [PATCH 6/6] dbeaver/pro#8044 add api for database pref --- .../WebGlobalProjectRegistryProxy.java | 5 --- .../cloudbeaver/model/session/WebSession.java | 34 +++++-------------- 2 files changed, 8 insertions(+), 31 deletions(-) diff --git a/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/WebGlobalProjectRegistryProxy.java b/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/WebGlobalProjectRegistryProxy.java index 59c75f886e8..6eb54b4f78a 100644 --- a/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/WebGlobalProjectRegistryProxy.java +++ b/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/WebGlobalProjectRegistryProxy.java @@ -416,11 +416,6 @@ public void resolveSecrets(DBSSecretController secretController) throws DBExcept dataSourceRegistry.resolveSecrets(secretController); } - @Override - public DBPObjectSettingsProvider getDatasourceSettingsProvider() { - return webSession; - } - /** * Event listener proxy. * For some cases (like creating data source) we should not send event because of accessibility of connection. diff --git a/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/session/WebSession.java b/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/session/WebSession.java index f939501f4fa..cf19260b39b 100644 --- a/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/session/WebSession.java +++ b/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/model/session/WebSession.java @@ -33,7 +33,10 @@ import org.jkiss.code.Nullable; import org.jkiss.dbeaver.DBException; import org.jkiss.dbeaver.Log; -import org.jkiss.dbeaver.model.*; +import org.jkiss.dbeaver.model.DBFileController; +import org.jkiss.dbeaver.model.DBPAdaptable; +import org.jkiss.dbeaver.model.DBPDataSourceContainer; +import org.jkiss.dbeaver.model.DBPEventListener; import org.jkiss.dbeaver.model.access.DBAAuthCredentials; import org.jkiss.dbeaver.model.access.DBACredentialsProvider; import org.jkiss.dbeaver.model.auth.*; @@ -46,7 +49,9 @@ import org.jkiss.dbeaver.model.runtime.AbstractJob; import org.jkiss.dbeaver.model.runtime.BaseProgressMonitor; import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor; -import org.jkiss.dbeaver.model.security.*; +import org.jkiss.dbeaver.model.security.SMAdminController; +import org.jkiss.dbeaver.model.security.SMConstants; +import org.jkiss.dbeaver.model.security.SMController; import org.jkiss.dbeaver.model.sql.DBQuotaException; import org.jkiss.dbeaver.model.websocket.event.MessageType; import org.jkiss.dbeaver.model.websocket.event.WSSessionLogUpdatedEvent; @@ -68,7 +73,7 @@ */ //TODO: split to authenticated and non authenticated context public class WebSession extends BaseWebSession - implements SMSessionWithAuth, SMCredentialsProvider, DBACredentialsProvider, DBPAdaptable, DBPObjectSettingsProvider { + implements SMSessionWithAuth, SMCredentialsProvider, DBACredentialsProvider, DBPAdaptable { private static final Log log = Log.getLog(WebSession.class); @@ -1024,29 +1029,6 @@ public WebSessionGlobalProjectImpl getGlobalProject() { return globalProject; } - @Override - public void clearObjectSettings(@NotNull String projectId, @NotNull SMObjectType objectType, @NotNull String objectId, @NotNull Set settings) - throws DBException { - //fixme - } - - @Nullable - @Override - public Map getObjectSettings(@NotNull String projectId, @NotNull SMObjectType objectType, @NotNull String objectId) { - try { - List objectSettings = this.getSecurityController().getObjectSettings(projectId, objectType, objectId, null); - return objectSettings.isEmpty() ? null : objectSettings.getFirst().settings(); - } catch (DBException e) { - throw new RuntimeException(e); - } - } - - @Override - public void setObjectSettings(@NotNull String projectId, @NotNull SMObjectType objectType, @NotNull String objectId, @NotNull Map settings) - throws DBException { - this.getSecurityController().setObjectSettings(projectId, objectType, objectId, settings); - } - public void handleTaskConfirmation( @NotNull String taskId, boolean confirmed,