fix(plugin-connections): CB-2208 validate folder field

This commit is contained in:
Wroud
2022-07-07 14:23:50 +03:00
parent 46f7b7033d
commit f707714d5e
5 changed files with 14 additions and 2 deletions
@@ -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', '搜索用户或角色名称'],
@@ -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, ''))