mirror of
https://github.com/dbeaver/cloudbeaver.git
synced 2026-09-24 16:04:36 +08:00
fix(plugin-connections): CB-2208 validate folder field
This commit is contained in:
@@ -33,6 +33,7 @@ export default [
|
||||
['connections_connection_edit_search_hosts', 'Host names'],
|
||||
['connections_connection_address', 'Address'],
|
||||
['connections_connection_folder', 'Folder'],
|
||||
['connections_connection_folder_validation', 'Folder\'s name may contain the following symbols "_-$.()@" and can\'t start with a dot'],
|
||||
['connections_connection_name', 'Connection name'],
|
||||
['connections_connection_access_user_or_role_name', 'User or Role name'],
|
||||
['connections_connection_access_filter_placeholder', 'Search for user or role name'],
|
||||
|
||||
@@ -32,6 +32,7 @@ export default [
|
||||
['connections_connection_edit_search_hosts', 'Host names'],
|
||||
['connections_connection_address', 'Indirizzo'],
|
||||
['connections_connection_folder', 'Folder'],
|
||||
['connections_connection_folder_validation', 'Folder\'s name may contain the following symbols "_-$.()@" and can\'t start with a dot'],
|
||||
['connections_connection_name', 'Nome della connessione'],
|
||||
['connections_connection_access_user_or_role_name', 'Nome dell\'Utente o del ruolo'],
|
||||
['connections_connection_access_revoke', 'Revoca'],
|
||||
|
||||
@@ -30,6 +30,7 @@ export default [
|
||||
['connections_connection_edit_search_hosts', 'Названия хостов'],
|
||||
['connections_connection_address', 'Адрес'],
|
||||
['connections_connection_folder', 'Папка'],
|
||||
['connections_connection_folder_validation', 'Имя папки может содержать следующие символы "_-$.()@" и не может начинаться с точки'],
|
||||
['connections_connection_name', 'Название подключения'],
|
||||
['connections_connection_access_user_or_role_name', 'Имя пользователя или роли'],
|
||||
['connections_connection_access_filter_placeholder', 'Поиск по имени пользователя или роли'],
|
||||
|
||||
@@ -33,6 +33,7 @@ export default [
|
||||
['connections_connection_edit_search_hosts', '主机名称'],
|
||||
['connections_connection_address', '地址'],
|
||||
['connections_connection_folder', 'Folder'],
|
||||
['connections_connection_folder_validation', 'Folder\'s name may contain the following symbols "_-$.()@" and can\'t start with a dot'],
|
||||
['connections_connection_name', '连接名称'],
|
||||
['connections_connection_access_user_or_role_name', '用户或角色名称'],
|
||||
['connections_connection_access_filter_placeholder', '搜索用户或角色名称'],
|
||||
|
||||
+10
-2
@@ -8,7 +8,7 @@
|
||||
|
||||
import { action, makeObservable, runInAction, toJS } from 'mobx';
|
||||
|
||||
import { DatabaseAuthModelsResource, DatabaseConnection, DBDriverResource, isJDBCConnection } from '@cloudbeaver/core-connections';
|
||||
import { CONNECTION_FOLDER_NAME_VALIDATION, DatabaseAuthModelsResource, DatabaseConnection, DBDriverResource, isJDBCConnection } from '@cloudbeaver/core-connections';
|
||||
import { Bootstrap, injectable } from '@cloudbeaver/core-di';
|
||||
import type { IExecutionContextProvider } from '@cloudbeaver/core-executor';
|
||||
import { CachedMapAllKey, isObjectPropertyInfoStateEqual, ObjectPropertyInfo } from '@cloudbeaver/core-sdk';
|
||||
@@ -114,6 +114,10 @@ export class ConnectionOptionsTabService extends Bootstrap {
|
||||
if (!state.config.name?.length) {
|
||||
validation.error("Field 'name' can't be empty");
|
||||
}
|
||||
|
||||
if (state.config.folder && !state.config.folder.match(CONNECTION_FOLDER_NAME_VALIDATION)) {
|
||||
validation.error('connections_connection_folder_validation');
|
||||
}
|
||||
}
|
||||
|
||||
private fillConfig(
|
||||
@@ -205,7 +209,10 @@ export class ConnectionOptionsTabService extends Bootstrap {
|
||||
tempConfig.description = state.config.description;
|
||||
tempConfig.template = state.config.template;
|
||||
tempConfig.driverId = state.config.driverId;
|
||||
tempConfig.folder = state.config.folder;
|
||||
|
||||
if (!state.config.template) {
|
||||
tempConfig.folder = state.config.folder;
|
||||
}
|
||||
|
||||
if (isJDBCConnection(driver, state.info)) {
|
||||
tempConfig.url = state.config.url;
|
||||
@@ -273,6 +280,7 @@ export class ConnectionOptionsTabService extends Bootstrap {
|
||||
!isValuesEqual(config.name, data.info.name, '')
|
||||
|| !isValuesEqual(config.description, data.info.description, '')
|
||||
|| !isValuesEqual(config.template, data.info.template, true)
|
||||
|| !isValuesEqual(config.folder, data.info.folder, undefined)
|
||||
|| !isValuesEqual(config.driverId, data.info.driverId, '')
|
||||
|| (config.url !== undefined && !isValuesEqual(config.url, data.info.url, ''))
|
||||
|| (config.host !== undefined && !isValuesEqual(config.host, data.info.host, ''))
|
||||
|
||||
Reference in New Issue
Block a user