Merge remote-tracking branch 'origin/devel' into devel

This commit is contained in:
serge-rider
2021-11-18 23:01:37 +03:00
62 changed files with 165 additions and 484 deletions
@@ -41,14 +41,17 @@ const styles = composes(
font-weight: 500;
}
input {
padding-right: 12px !important;
padding-right: 24px !important;
}
MenuButton {
position: absolute;
right: 0;
background: transparent;
outline: none;
padding: 4px;
display: flex;
align-items: center;
height: 100%;
padding: 0 8px 0 0;
cursor: pointer;
&:hover, &:focus {
opacity: 0.7;
@@ -108,17 +111,22 @@ const styles = composes(
display: flex;
align-items: center;
/* & input-icon {
width: 32px;
height: 32px;
overflow: hidden;
flex-shrink: 0;
& IconOrImage {
width: 100%;
height: 100%;
}
}*/
& input-icon {
position: absolute;
left: 0;
width: 16px;
height: 16px;
margin-left: 12px;
& IconOrImage {
width: 100%;
height: 100%;
}
&:not(:empty) + input {
padding-left: 34px !important;
}
}
}
`
);
@@ -173,7 +181,7 @@ export const Combobox: ComboboxType = observer(function Combobox({
valueSelector = v => v,
iconSelector,
titleSelector,
onChange = () => {},
onChange = () => { },
onSelect,
onSwitch,
...rest
@@ -312,19 +320,17 @@ export const Combobox: ComboboxType = observer(function Combobox({
};
}, [inputRef]);
// const icon = selectedItem && iconSelector?.(selectedItem);
const icon = selectedItem && iconSelector?.(selectedItem);
return styled(useStyles(baseFormControlStyles, styles))(
<field className={className}>
{children && <field-label title={title} as='label'>{children}{rest.required && ' *'}</field-label>}
<input-box>
{/* {icon && (
{icon && (
<input-icon>
{typeof icon === 'string'
? <IconOrImage icon={icon} />
: icon}
{typeof icon === 'string' ? <IconOrImage icon={icon} /> : icon}
</input-icon>
)} */}
)}
<input
ref={setInputRef}
role='new'
@@ -370,11 +376,9 @@ export const Combobox: ComboboxType = observer(function Combobox({
{...menu}
onClick={event => handleSelect(event.currentTarget.id)}
>
{icon && (
{iconSelector && (
<item-icon>
{typeof icon === 'string'
? <IconOrImage icon={icon} />
: icon}
{icon && typeof icon === 'string' ? <IconOrImage icon={icon} /> : icon}
</item-icon>
)}
<item-value>{valueSelector(item)}</item-value>
@@ -33,9 +33,7 @@ const excludedFromVendor = [
'svg-tag-names',
'html-tags',
'codemirror',
'react-codemirror2',
'prettier',
'sql-formatter'
'react-codemirror2'
]
const timestampVersion = withTimestamp(package.version)
@@ -86,6 +84,7 @@ module.exports = (env, argv) => merge(commonConfig(env, argv), {
inject: 'body',
chunks: ['main'],
version: timestampVersion,
title: package.product?.name
}),
new HtmlWebpackPlugin({
filename: 'sso.html',
@@ -93,6 +92,7 @@ module.exports = (env, argv) => merge(commonConfig(env, argv), {
inject: 'body',
chunks: ['sso'],
version: timestampVersion,
title: package.product?.name
}),
],
})
@@ -61,14 +61,16 @@ module.exports = (env, argv) => merge(commonConfig(env, argv), {
template: resolve('src/index.html.ejs'),
inject: 'body',
chunks: ['main'],
version: package.version
version: package.version,
title: package.product?.name
}),
new HtmlWebpackPlugin({
filename: 'sso.html',
template: ssoHtmlTemplate,
inject: 'body',
chunks: ['sso'],
version: package.version
version: package.version,
title: package.product?.name
}),
new webpack.HotModuleReplacementPlugin(),
],
@@ -1,69 +0,0 @@
/*
* CloudBeaver - Cloud Database Manager
* Copyright (C) 2020-2021 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0.
* you may not use this file except in compliance with the License.
*/
import { AdministrationItemService, AdministrationItemType } from '@cloudbeaver/core-administration';
import { RoleInfo, RolesResource } from '@cloudbeaver/core-authentication';
import { PlaceholderContainer } from '@cloudbeaver/core-blocks';
import { injectable, Bootstrap } from '@cloudbeaver/core-di';
import { NotificationService } from '@cloudbeaver/core-events';
import { CreateRoleService } from './CreateRoleService';
import { RolesAdministration } from './RolesAdministration';
import { RolesDrawerItem } from './RolesDrawerItem';
export interface IRoleDetailsInfoProps {
role: RoleInfo;
}
@injectable()
export class RolesAdministrationService extends Bootstrap {
readonly roleDetailsInfoPlaceholder = new PlaceholderContainer<IRoleDetailsInfoProps>();
constructor(
private readonly administrationItemService: AdministrationItemService,
private readonly createRoleService: CreateRoleService,
private readonly rolesResource: RolesResource,
private readonly notificationService: NotificationService,
) {
super();
}
register(): void {
this.administrationItemService.create({
name: 'roles',
order: 3.1,
configurationWizardOptions: {
description: 'administration_roles_tab_description',
},
sub: [
{
name: 'create',
onActivate: () => this.createRoleService.fillData(),
},
],
getContentComponent: () => RolesAdministration,
getDrawerComponent: () => RolesDrawerItem,
onActivate: this.loadRoles.bind(this),
onDeActivate: (configurationWizard, outside) => {
if (outside) {
this.rolesResource.cleanNewFlags();
}
},
});
}
load(): void | Promise<void> { }
private async loadRoles() {
try {
await this.rolesResource.loadAll();
} catch (exception) {
this.notificationService.logException(exception, 'Error occurred while loading roles');
}
}
}
@@ -6,20 +6,21 @@
* you may not use this file except in compliance with the License.
*/
import { AdministrationScreenService } from '@cloudbeaver/core-administration';
import { injectable } from '@cloudbeaver/core-di';
import { EUsersAdministrationSub, UsersAdministrationNavigationService } from '../UsersAdministrationNavigationService';
@injectable()
export class RolesAdministrationNavService {
constructor(
private administrationScreenService: AdministrationScreenService
private usersAdministrationNavigationService: UsersAdministrationNavigationService
) { }
navToRoot(): void {
this.administrationScreenService.navigateToItem('roles');
this.usersAdministrationNavigationService.navToSub(EUsersAdministrationSub.Roles);
}
navToCreate(): void {
this.administrationScreenService.navigateToItemSub('roles', 'create');
this.usersAdministrationNavigationService.navToSub(EUsersAdministrationSub.Roles, 'create');
}
}
@@ -0,0 +1,20 @@
/*
* CloudBeaver - Cloud Database Manager
* Copyright (C) 2020-2021 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0.
* you may not use this file except in compliance with the License.
*/
import type { RoleInfo } from '@cloudbeaver/core-authentication';
import { PlaceholderContainer } from '@cloudbeaver/core-blocks';
import { injectable } from '@cloudbeaver/core-di';
export interface IRoleDetailsInfoProps {
role: RoleInfo;
}
@injectable()
export class RolesAdministrationService {
readonly roleDetailsInfoPlaceholder = new PlaceholderContainer<IRoleDetailsInfoProps>();
}
@@ -9,7 +9,7 @@
import { observer } from 'mobx-react-lite';
import styled, { css, use } from 'reshadow';
import { AdministrationItemContentComponent, ADMINISTRATION_TOOLS_PANEL_STYLES } from '@cloudbeaver/core-administration';
import { ADMINISTRATION_TOOLS_PANEL_STYLES, IAdministrationItemSubItem } from '@cloudbeaver/core-administration';
import { BASE_CONTAINERS_STYLES, ToolsAction, Loader, ToolsPanel } from '@cloudbeaver/core-blocks';
import { useService } from '@cloudbeaver/core-di';
import { useTranslate } from '@cloudbeaver/core-localization';
@@ -41,51 +41,62 @@ const styles = composes(
position: relative;
border: solid 1px;
}
ToolsPanel {
border-bottom: none;
}
`);
export const RolesAdministration: AdministrationItemContentComponent = observer(function RolesAdministration({
interface Props {
sub?: IAdministrationItemSubItem;
param?: string | null;
}
export const RolesPage = observer<Props>(function RolesPage({
sub,
param,
}) {
const translate = useTranslate();
const style = useStyles(styles, ADMINISTRATION_TOOLS_PANEL_STYLES, BASE_CONTAINERS_STYLES);
const service = useService(CreateRoleService);
const table = useRolesTable();
const create = param === 'create';
return styled(style)(
<>
<ToolsPanel>
<ToolsAction
title={translate('administration_roles_add_tooltip')}
icon="add"
viewBox="0 0 24 24"
disabled={!!sub || table.processing}
onClick={service.create}
>
{translate('ui_add')}
</ToolsAction>
<ToolsAction
title={translate('administration_roles_refresh_tooltip')}
icon="refresh"
viewBox="0 0 24 24"
disabled={table.processing}
onClick={table.update}
>
{translate('ui_refresh')}
</ToolsAction>
<ToolsAction
title={translate('administration_roles_delete_tooltip')}
icon="trash"
viewBox="0 0 24 24"
disabled={!table.tableState.itemsSelected || table.processing}
onClick={table.delete}
>
{translate('ui_delete')}
</ToolsAction>
</ToolsPanel>
<layout-grid>
<layout-grid-inner>
{sub && (
<layout-grid-cell {...use({ span: 12 })}>
<ToolsPanel>
<ToolsAction
title={translate('administration_roles_add_tooltip')}
icon="add"
viewBox="0 0 24 24"
disabled={create || table.processing}
onClick={service.create}
>
{translate('ui_add')}
</ToolsAction>
<ToolsAction
title={translate('administration_roles_refresh_tooltip')}
icon="refresh"
viewBox="0 0 24 24"
disabled={table.processing}
onClick={table.update}
>
{translate('ui_refresh')}
</ToolsAction>
<ToolsAction
title={translate('administration_roles_delete_tooltip')}
icon="trash"
viewBox="0 0 24 24"
disabled={!table.tableState.itemsSelected || table.processing}
onClick={table.delete}
>
{translate('ui_delete')}
</ToolsAction>
</ToolsPanel>
</layout-grid-cell>
{create && (
<layout-grid-cell {...use({ span: 12 })}>
<CreateRole />
</layout-grid-cell>
@@ -100,6 +111,5 @@ export const RolesAdministration: AdministrationItemContentComponent = observer(
</layout-grid-cell>
</layout-grid-inner>
</layout-grid>
</>
);
});
@@ -16,6 +16,7 @@ import { useTranslate } from '@cloudbeaver/core-localization';
import { useStyles } from '@cloudbeaver/core-theming';
import { MetaParameters } from './MetaParameters/MetaParameters';
import { RolesPage } from './Roles/RolesPage';
import { EUsersAdministrationSub, UsersAdministrationNavigationService } from './UsersAdministrationNavigationService';
import { UsersTable } from './UsersTable/UsersTable';
@@ -24,6 +25,7 @@ const tabsStyles = css`
position: relative;
flex-shrink: 0;
align-items: center;
height: 51px;
}
Tab {
height: 46px!important;
@@ -56,7 +58,8 @@ export const UsersAdministration: AdministrationItemContentComponent = observer(
<TabsState selectedId={subName} onChange={openSub}>
<ToolsPanel>
<TabList style={style}>
<Tab tabId={EUsersAdministrationSub.Users} style={style}>{translate('authentication_administration_item')}</Tab>
<Tab tabId={EUsersAdministrationSub.Users} style={style}>{translate('authentication_administration_item_users')}</Tab>
<Tab tabId={EUsersAdministrationSub.Roles} style={style}>{translate('administration_roles_tab_title')}</Tab>
{/* <Tab
tabId={EUsersAdministrationSub.MetaProperties}
style={style}
@@ -68,6 +71,9 @@ export const UsersAdministration: AdministrationItemContentComponent = observer(
<TabPanel tabId={EUsersAdministrationSub.Users}>
<UsersTable sub={sub} param={param} />
</TabPanel>
<TabPanel tabId={EUsersAdministrationSub.Roles}>
<RolesPage sub={sub} param={param} />
</TabPanel>
<TabPanel tabId={EUsersAdministrationSub.MetaProperties}>
<MetaParameters />
</TabPanel>
@@ -11,6 +11,7 @@ import { injectable } from '@cloudbeaver/core-di';
export enum EUsersAdministrationSub {
Users = 'users',
Roles = 'roles',
MetaProperties = 'metaProperties'
}
@@ -7,11 +7,12 @@
*/
import { AdministrationItemService } from '@cloudbeaver/core-administration';
import { AdminUser, UsersResource } from '@cloudbeaver/core-authentication';
import { AdminUser, RolesResource, UsersResource } from '@cloudbeaver/core-authentication';
import { PlaceholderContainer } from '@cloudbeaver/core-blocks';
import { injectable, Bootstrap } from '@cloudbeaver/core-di';
import { NotificationService } from '@cloudbeaver/core-events';
import { CreateRoleService } from './Roles/CreateRoleService';
import { UsersAdministration } from './UsersAdministration';
import { EUsersAdministrationSub, UsersAdministrationNavigationService } from './UsersAdministrationNavigationService';
import { UsersDrawerItem } from './UsersDrawerItem';
@@ -30,7 +31,9 @@ export class UsersAdministrationService extends Bootstrap {
private administrationItemService: AdministrationItemService,
private notificationService: NotificationService,
private usersResource: UsersResource,
private createUserService: CreateUserService
private createUserService: CreateUserService,
private readonly rolesResource: RolesResource,
private readonly createRoleService: CreateRoleService,
) {
super();
}
@@ -47,6 +50,15 @@ export class UsersAdministrationService extends Bootstrap {
name: EUsersAdministrationSub.Users,
onDeActivate: this.cancelCreate.bind(this),
},
{
name: EUsersAdministrationSub.Roles,
onActivate: this.loadRoles.bind(this),
onDeActivate: (configurationWizard, outside) => {
if (outside) {
this.rolesResource.cleanNewFlags();
}
},
},
],
getContentComponent: () => UsersAdministration,
getDrawerComponent: () => UsersDrawerItem,
@@ -70,4 +82,15 @@ export class UsersAdministrationService extends Bootstrap {
this.notificationService.logException(exception, 'Error occurred while loading users');
}
}
private async loadRoles(param: string | null) {
if (param === 'create') {
this.createRoleService.fillData();
}
try {
await this.rolesResource.loadAll();
} catch (exception) {
this.notificationService.logException(exception, 'Error occurred while loading roles');
}
}
}
@@ -60,6 +60,10 @@ const styles = css`
Loader {
height: 100%;
}
ToolsPanel {
border-bottom: none;
}
`;
interface Props {
@@ -86,6 +90,7 @@ export const UsersTable = observer<Props>(function UsersTable({ sub, param }) {
return 1;
}));
const create = param === 'create';
const keys = users.map(user => user.userId);
return styled(style)(
@@ -98,7 +103,7 @@ export const UsersTable = observer<Props>(function UsersTable({ sub, param }) {
title={translate('authentication_administration_tools_add_tooltip')}
icon="add"
viewBox="0 0 24 24"
disabled={sub && !!createUserService.user}
disabled={create && !!createUserService.user}
onClick={createUserService.create}
>
{translate('ui_add')}
@@ -126,7 +131,7 @@ export const UsersTable = observer<Props>(function UsersTable({ sub, param }) {
</ToolsPanel>
</layout-grid-cell>
{param === 'create' && createUserService.user && (
{create && createUserService.user && (
<layout-grid-cell {...use({ span: 12 })}>
<CreateUser user={createUserService.user} onCancel={createUserService.cancelCreate} />
</layout-grid-cell>
@@ -1,14 +1,4 @@
export default [
['authentication_login_dialog_title', 'Authentication'],
['authentication_login', 'Login'],
['authentication_logout', 'Logout'],
['authentication_authenticate', 'Authenticate'],
['authentication_select_provider', 'Select available provider'],
['authentication_configure', 'Please configure authentication methods'],
['authentication_provider_disabled', 'Authentication method is disabled'],
['authentication_request_token', 'Additional authentication is required'],
['authentication_identity_provider_search_placeholder', 'Search for configuration name or description...'],
['authentication_identity_provider_dialog_subtitle', 'Choose configuration you want to sign in with'],
['authentication_administration_user_connections_user_add', 'User Creation'],
['authentication_administration_user_connections_user_new', 'New user'],
['authentication_administration_user_connections_access_load_fail', 'User\'s granted connections loading failed'],
@@ -21,7 +11,8 @@ export default [
['authentication_administration_user_connections_empty', 'No available connections'],
['authentication_administration_user_origin_empty', 'No available details'],
['authentication_administration_user_info', 'Info'],
['authentication_administration_item', 'Users'],
['authentication_administration_item', 'Access Management'],
['authentication_administration_item_users', 'Users'],
['authentication_administration_item_metaParameters', 'Meta Parameters'],
['authentication_administration_tools_add_tooltip', 'Add new user'],
['authentication_administration_tools_refresh_tooltip', 'Refresh user list'],
@@ -33,27 +24,6 @@ export default [
['authentication_administration_user_create_failed', 'Error creating new user'],
['authentication_administration_users_delete_confirmation', "You're going to delete these users: "],
['authentication_user_name', 'User name'],
['authentication_user_credentials', 'Credentials'],
['authentication_user_meta_parameters', 'Parameters'],
['authentication_user_current_password', 'Current password'],
['authentication_user_new_password', 'New password'],
['authentication_user_password', 'User password'],
['authentication_user_password_repeat', 'Repeat password'],
['authentication_user_role', 'User role'],
['authentication_user_login_not_set', 'Login can\'t be empty'],
['authentication_user_role_not_set', 'At least one role must be selected'],
['authentication_user_password_not_set', 'Password is required'],
['authentication_user_passwords_not_match', "Passwords don't match"],
['authentication_user_login_already_exists', 'The user with this name already exists'],
['authentication_user_login_cant_be_used', 'Sorry, that name cannot be used'],
['authentication_user_password_change_dialog_title', 'Change password (local)'],
['authentication_user_password_change_menu_title', 'Change local password'],
['authentication_user_password_change_success', 'Password was changed successfully'],
['authentication_user_password_change_dialog_submit', 'Change'],
['authentication_user_icon_tooltip', 'User'],
['authentication_role_icon_tooltip', 'Role'],
['administration_configuration_wizard_configuration_admin', 'Administrator Credentials'],
['administration_configuration_wizard_configuration_admin_name', 'Login'],
['administration_configuration_wizard_configuration_admin_password', 'Password'],
@@ -1,9 +1,4 @@
export default [
['authentication_login_dialog_title', 'Autenticazione'],
['authentication_login', 'Login'],
['authentication_logout', 'Logout'],
['authentication_authenticate', 'Autentica'],
['authentication_request_token', 'Autenticazione addizionale richiesta'],
['authentication_administration_user_connections_user_add', 'Creazione di Utente'],
['authentication_administration_user_connections_user_new', 'Nuovo utente'],
['authentication_administration_user_connections_access_load_fail', 'Errore in fase di caricamento delle connessioni autorizzate all\'utente'],
@@ -25,26 +20,6 @@ export default [
['authentication_administration_user_updated', 'Utente aggiornato'],
['authentication_administration_user_created', 'Utente creato con successo'],
['authentication_administration_user_create_failed', 'Errore di creazione nuovo utente'],
['authentication_user_name', 'Nome utente'],
['authentication_user_credentials', 'Credenziali'],
['authentication_user_meta_parameters', 'Parameters'],
['authentication_user_current_password', 'Password corrente'],
['authentication_user_new_password', 'Nuova password'],
['authentication_user_password', 'Password utente'],
['authentication_user_password_repeat', 'Ripeti password'],
['authentication_user_role', 'Ruolo utente'],
['authentication_user_login_not_set', 'Login non può esser vuoto'],
['authentication_user_role_not_set', 'Selezionare almeno un ruolo'],
['authentication_user_password_not_set', 'La Password è obbligatoria'],
['authentication_user_passwords_not_match', 'Le Passwords non coincidono'],
['authentication_user_login_already_exists', 'Esiste già un utente con quel nome'],
['authentication_user_login_cant_be_used', 'Quel nome non può essere usato'],
['authentication_user_password_change_dialog_title', 'Modifica la password (locale)'],
['authentication_user_password_change_menu_title', 'Modifica la password locale'],
['authentication_user_password_change_success', 'Password modificata con successo'],
['authentication_user_password_change_dialog_submit', 'Modifica'],
['authentication_user_icon_tooltip', 'Utente'],
['authentication_role_icon_tooltip', 'Ruolo'],
['administration_configuration_wizard_configuration_admin', 'Credenziali amministrative'],
['administration_configuration_wizard_configuration_admin_name', 'Login'],
@@ -1,14 +1,4 @@
export default [
['authentication_login_dialog_title', 'Аутентификация'],
['authentication_login', 'Войти'],
['authentication_logout', 'Выйти'],
['authentication_authenticate', 'Аутентифицироваться'],
['authentication_select_provider', 'Выберите способ аутентификации'],
['authentication_configure', 'Пожалуйста настройте способы аутентификации'],
['authentication_provider_disabled', 'Способ аутентификации отключен'],
['authentication_request_token', 'Необходима дополнительная аутентификация'],
['authentication_identity_provider_search_placeholder', 'Поиск по имени или описанию конфигурации...'],
['authentication_identity_provider_dialog_subtitle', 'Выберите конфигурацию с помощью которой вы хотите войти'],
['authentication_administration_user_connections_user_add', 'Создание пользователя'],
['authentication_administration_user_connections_user_new', 'Новый пользователь'],
['authentication_administration_user_connections_access_load_fail', 'Не удалось загрузить доступные пользователю коннекшены'],
@@ -21,7 +11,9 @@ export default [
['authentication_administration_user_connections_empty', 'Нет доступных коннекшенов'],
['authentication_administration_user_origin_empty', 'Дополнительная информация не доступна'],
['authentication_administration_user_info', 'Общее'],
['authentication_administration_item', 'Пользователи'],
['authentication_administration_item', 'Управление доступом'],
['authentication_administration_item_users', 'Пользователи'],
['authentication_administration_item_metaParameters', 'Свойства Пользователей'],
['authentication_administration_tools_add_tooltip', 'Добавить нового пользователя'],
['authentication_administration_tools_refresh_tooltip', 'Обновить список пользователей'],
['authentication_administration_tools_delete_tooltip', 'Удалить выбранных пользователей'],
@@ -32,27 +24,6 @@ export default [
['authentication_administration_user_create_failed', 'Не удалось создать пользователя'],
['authentication_administration_users_delete_confirmation', 'Вы собираетесь удалить следующих пользователей: '],
['authentication_user_name', 'Имя'],
['authentication_user_credentials', 'Учетные данные'],
['authentication_user_meta_parameters', 'Параметры'],
['authentication_user_current_password', 'Текущий пароль'],
['authentication_user_new_password', 'Новый пароль'],
['authentication_user_password', 'Пароль'],
['authentication_user_password_repeat', 'Повторите пароль'],
['authentication_user_role', 'Роль'],
['authentication_user_login_not_set', 'Логин не может быть пустым'],
['authentication_user_role_not_set', 'Должна быть выбрана минимум одна роль'],
['authentication_user_password_not_set', 'Пароль не задан'],
['authentication_user_passwords_not_match', 'Пароли не совпадают'],
['authentication_user_login_already_exists', 'Пользователь с таким именем уже существует'],
['authentication_user_login_cant_be_used', 'Данное имя нельзя использовать'],
['authentication_user_password_change_dialog_title', 'Изменение пароля (локального)'],
['authentication_user_password_change_menu_title', 'Изменить локальный пароль'],
['authentication_user_password_change_success', 'Пароль успешно изменен'],
['authentication_user_password_change_dialog_submit', 'Изменить'],
['authentication_user_icon_tooltip', 'Пользователь'],
['authentication_role_icon_tooltip', 'Роль'],
['administration_configuration_wizard_configuration_admin', 'Учетные данные администратора'],
['administration_configuration_wizard_configuration_admin_name', 'Логин'],
['administration_configuration_wizard_configuration_admin_password', 'Пароль'],
@@ -13,15 +13,15 @@ import { AuthConfigurationsAdministrationNavService } from './Administration/Ide
import { AuthConfigurationsAdministrationService } from './Administration/IdentityProviders/AuthConfigurationsAdministrationService';
import { CreateAuthConfigurationService } from './Administration/IdentityProviders/CreateAuthConfigurationService';
import { AuthConfigurationOptionsTabService } from './Administration/IdentityProviders/Options/AuthConfigurationOptionsTabService';
import { CreateRoleService } from './Administration/Roles/CreateRoleService';
import { GrantedConnectionsTabService } from './Administration/Roles/GrantedConnections/GrantedConnectionsTabService';
import { GrantedUsersTabService } from './Administration/Roles/GrantedUsers/GrantedUsersTabService';
import { RoleOptionsTabService } from './Administration/Roles/Options/RoleOptionsTabService';
import { RoleFormService } from './Administration/Roles/RoleFormService';
import { RolesAdministrationNavService } from './Administration/Roles/RolesAdministrationNavService';
import { RolesAdministrationService } from './Administration/Roles/RolesAdministrationService';
import { ServerConfigurationAuthenticationBootstrap } from './Administration/ServerConfiguration/ServerConfigurationAuthenticationBootstrap';
import { CreateMetaParameterService } from './Administration/Users/MetaParameters/CreateMetaParameterService';
import { CreateRoleService } from './Administration/Users/Roles/CreateRoleService';
import { GrantedConnectionsTabService } from './Administration/Users/Roles/GrantedConnections/GrantedConnectionsTabService';
import { GrantedUsersTabService } from './Administration/Users/Roles/GrantedUsers/GrantedUsersTabService';
import { RoleOptionsTabService } from './Administration/Users/Roles/Options/RoleOptionsTabService';
import { RoleFormService } from './Administration/Users/Roles/RoleFormService';
import { RolesAdministrationNavService } from './Administration/Users/Roles/RolesAdministrationNavService';
import { RolesAdministrationService } from './Administration/Users/Roles/RolesAdministrationService';
import { UserFormBaseBootstrap } from './Administration/Users/UserForm/UserFormBaseBootstrap';
import { UserFormService } from './Administration/Users/UserForm/UserFormService';
import { UsersAdministrationNavigationService } from './Administration/Users/UsersAdministrationNavigationService';
@@ -10,29 +10,6 @@ export default [
['authentication_request_token', 'Additional authentication is required'],
['authentication_identity_provider_search_placeholder', 'Search for configuration name or description...'],
['authentication_identity_provider_dialog_subtitle', 'Choose configuration you want to sign in with'],
['authentication_administration_user_connections_user_add', 'User Creation'],
['authentication_administration_user_connections_user_new', 'New user'],
['authentication_administration_user_connections_access_load_fail', 'User\'s granted connections loading failed'],
['authentication_administration_user_connections_access_connections_load_fail', 'Connections loading failed'],
['authentication_administration_user_connections_access', 'Connections Access'],
['authentication_administration_user_connections_access_granted_by', 'Granted by'],
['authentication_administration_user_connections_access_granted_role', 'Role:'],
['authentication_administration_user_connections_access_granted_directly', 'Directly'],
['authentication_administration_user_connections_access_granted_unmanaged', 'Unmanaged'],
['authentication_administration_user_connections_empty', 'No available connections'],
['authentication_administration_user_origin_empty', 'No available details'],
['authentication_administration_user_info', 'Info'],
['authentication_administration_item', 'Users'],
['authentication_administration_item_metaParameters', 'Meta Parameters'],
['authentication_administration_tools_add_tooltip', 'Add new user'],
['authentication_administration_tools_refresh_tooltip', 'Refresh user list'],
['authentication_administration_tools_delete_tooltip', 'Delete selected users'],
['authentication_administration_tools_refresh_success', 'User list was refreshed'],
['authentication_administration_user_update_failed', 'Error saving user'],
['authentication_administration_user_updated', 'User updated'],
['authentication_administration_user_created', 'User was created successfully'],
['authentication_administration_user_create_failed', 'Error creating new user'],
['authentication_administration_users_delete_confirmation', "You're going to delete these users: "],
['authentication_user_name', 'User name'],
['authentication_user_credentials', 'Credentials'],
@@ -54,64 +31,4 @@ export default [
['authentication_user_password_change_dialog_submit', 'Change'],
['authentication_user_icon_tooltip', 'User'],
['authentication_role_icon_tooltip', 'Role'],
['administration_configuration_wizard_configuration_admin', 'Administrator Credentials'],
['administration_configuration_wizard_configuration_admin_name', 'Login'],
['administration_configuration_wizard_configuration_admin_password', 'Password'],
['administration_configuration_wizard_configuration_anonymous_access', 'Allow anonymous access'],
['administration_configuration_wizard_configuration_anonymous_access_description', 'Allows to work with CloudBeaver without user authentication'],
['administration_configuration_wizard_configuration_authentication_group', 'Authentication settings'],
['administration_configuration_wizard_configuration_services_group', 'Services'],
['administration_configuration_wizard_configuration_services', 'Services'],
['administration_configuration_wizard_configuration_authentication', 'Enable users authentication'],
['administration_configuration_wizard_configuration_authentication_description', 'Allows users to authenticate. Otherwise only anonymous access is enabled'],
['administration_identity_providers_tab_title', 'Identity Providers'],
['administration_identity_providers_provider', 'Provider'],
['administration_identity_providers_provider_id', 'ID'],
['administration_identity_providers_provider_configuration_name', 'Configuration name'],
['administration_identity_providers_provider_configuration_disabled', 'Disabled'],
['administration_identity_providers_provider_configuration_description', 'Description'],
['administration_identity_providers_provider_configuration_icon_url', 'Icon URL'],
['administration_identity_providers_provider_configuration_parameters', 'Parameters'],
['administration_identity_providers_provider_configuration_links', 'Links'],
['administration_identity_providers_provider_configuration_links_metadata', 'Download metadata file'],
['administration_identity_providers_wizard_description', 'Add identity providers'],
['administration_identity_providers_configuration_add', 'Configuration creation'],
['administration_identity_providers_choose_provider_placeholder', 'Select provider...'],
['administration_identity_providers_add_tooltip', 'Add new configuration'],
['administration_identity_providers_refresh_tooltip', 'Refresh configuration list'],
['administration_identity_providers_delete_tooltip', 'Delete selected configurations'],
['administration_identity_providers_delete_confirmation', "You're going to delete these configurations: "],
['administration_identity_providers_provider_save_error', 'Save configuration error'],
['administration_identity_providers_provider_create_error', 'Create configuration error'],
['administration_identity_providers_configuration_list_update_success', 'Configuration list was refreshed'],
['administration_identity_providers_configuration_list_update_fail', 'Configuration list refresh failed'],
['administration_identity_providers_service_link', 'Edit configurations'],
['administration_roles_tab_title', 'Roles'],
['administration_roles_tab_description', 'Role management'],
['administration_roles_role_creation', 'Role creation'],
['administration_roles_role_id', 'Role ID'],
['administration_roles_role_name', 'Role name'],
['administration_roles_role_description', 'Description'],
['administration_roles_role_create_error', 'Create role error'],
['administration_roles_role_save_error', 'Save role error'],
['administration_roles_role_list_update_success', 'Role list was refreshed'],
['administration_roles_role_list_update_fail', 'Role list refresh failed'],
['administration_roles_add_tooltip', 'Add new role'],
['administration_roles_refresh_tooltip', 'Refresh role list'],
['administration_roles_delete_tooltip', 'Delete selected roles'],
['administration_roles_delete_confirmation', "You're going to delete these roles: "],
['administration_roles_role_granted_users_tab_title', 'Users'],
['administration_roles_role_granted_users_search_placeholder', 'Search for user ID...'],
['administration_roles_role_granted_users_user_id', 'User ID'],
['administration_roles_role_granted_users_user_name', 'User name'],
['administration_roles_role_granted_users_empty', 'No available users'],
['administration_roles_role_granted_users_permission_denied', "You can't edit your own permissions"],
['administration_roles_role_granted_connections_tab_title', 'Connections'],
['administration_roles_role_granted_connections_search_placeholder', 'Search for connection name...'],
['administration_roles_role_granted_connections_empty', 'No available connections'],
];
@@ -5,27 +5,6 @@ export default [
['authentication_authenticate', 'Autentica'],
['authentication_auth_federated', 'Federated'],
['authentication_request_token', 'Autenticazione addizionale richiesta'],
['authentication_administration_user_connections_user_add', 'Creazione di Utente'],
['authentication_administration_user_connections_user_new', 'Nuovo utente'],
['authentication_administration_user_connections_access_load_fail', 'Errore in fase di caricamento delle connessioni autorizzate all\'utente'],
['authentication_administration_user_connections_access_connections_load_fail', 'Errore in fase di caricamento delle connessioni'],
['authentication_administration_user_connections_access', 'Accesso alle connessioni'],
['authentication_administration_user_connections_access_granted_by', 'Permesso da'],
['authentication_administration_user_connections_access_granted_role', 'Ruolo:'],
['authentication_administration_user_connections_access_granted_directly', 'Direttamente'],
['authentication_administration_user_connections_access_granted_unmanaged', 'Non gestito'],
['authentication_administration_user_connections_empty', 'Nessuna connessione disponibile'],
['authentication_administration_user_origin_empty', 'Nessun dettaglio disponibile'],
['authentication_administration_user_info', 'Info'],
['authentication_administration_item', 'Utenti'],
['authentication_administration_tools_add_tooltip', 'Aggiungi nuovo utente'],
['authentication_administration_tools_refresh_tooltip', 'Aggiorna la lista utenti'],
['authentication_administration_tools_delete_tooltip', 'Elimina gli utenti selezionati'],
['authentication_administration_tools_refresh_success', 'Lista degli utenti ricaricata'],
['authentication_administration_user_update_failed', 'Errore al salvataggio utente'],
['authentication_administration_user_updated', 'Utente aggiornato'],
['authentication_administration_user_created', 'Utente creato con successo'],
['authentication_administration_user_create_failed', 'Errore di creazione nuovo utente'],
['authentication_user_name', 'Nome utente'],
['authentication_user_credentials', 'Credenziali'],
['authentication_user_meta_parameters', 'Parameters'],
@@ -46,14 +25,4 @@ export default [
['authentication_user_password_change_dialog_submit', 'Modifica'],
['authentication_user_icon_tooltip', 'Utente'],
['authentication_role_icon_tooltip', 'Ruolo'],
['administration_configuration_wizard_configuration_admin', 'Credenziali amministrative'],
['administration_configuration_wizard_configuration_admin_name', 'Login'],
['administration_configuration_wizard_configuration_admin_password', 'Password'],
['administration_configuration_wizard_configuration_anonymous_access', 'Permetti l\'accesso anonimo'],
['administration_configuration_wizard_configuration_anonymous_access_description', 'Permetti di lavorare con CloudBeaver senza autenticazione'],
['administration_configuration_wizard_configuration_authentication_group', 'Impostazioni di autenticazione'],
['administration_configuration_wizard_configuration_services', 'Servizi'],
['administration_configuration_wizard_configuration_authentication', 'Abilita l\'autenticazione utente'],
['administration_configuration_wizard_configuration_authentication_description', 'Permetti agli utenti di autenticarsi. In alternativa solo l\'accesso anonimo sarà attivo'],
];
@@ -10,28 +10,6 @@ export default [
['authentication_request_token', 'Необходима дополнительная аутентификация'],
['authentication_identity_provider_search_placeholder', 'Поиск по имени или описанию конфигурации...'],
['authentication_identity_provider_dialog_subtitle', 'Выберите конфигурацию с помощью которой вы хотите войти'],
['authentication_administration_user_connections_user_add', 'Создание пользователя'],
['authentication_administration_user_connections_user_new', 'Новый пользователь'],
['authentication_administration_user_connections_access_load_fail', 'Не удалось загрузить доступные пользователю коннекшены'],
['authentication_administration_user_connections_access_connections_load_fail', 'Ошибка при загрузке списка коннекшенов'],
['authentication_administration_user_connections_access', 'Доступ к базам'],
['authentication_administration_user_connections_access_granted_by', 'Предоставлено'],
['authentication_administration_user_connections_access_granted_role', 'Роль:'],
['authentication_administration_user_connections_access_granted_directly', 'Напрямую'],
['authentication_administration_user_connections_access_granted_unmanaged', 'Неуправляемый'],
['authentication_administration_user_connections_empty', 'Нет доступных коннекшенов'],
['authentication_administration_user_origin_empty', 'Дополнительная информация не доступна'],
['authentication_administration_user_info', 'Общее'],
['authentication_administration_item', 'Пользователи'],
['authentication_administration_tools_add_tooltip', 'Добавить нового пользователя'],
['authentication_administration_tools_refresh_tooltip', 'Обновить список пользователей'],
['authentication_administration_tools_delete_tooltip', 'Удалить выбранных пользователей'],
['authentication_administration_tools_refresh_success', 'Список пользователей обновлен'],
['authentication_administration_user_update_failed', 'Не удалось обновить пользователя'],
['authentication_administration_user_updated', 'Пользователь обновлен'],
['authentication_administration_user_created', 'Пользователь создан успешно'],
['authentication_administration_user_create_failed', 'Не удалось создать пользователя'],
['authentication_administration_users_delete_confirmation', 'Вы собираетесь удалить следующих пользователей: '],
['authentication_user_name', 'Имя'],
['authentication_user_credentials', 'Учетные данные'],
@@ -53,63 +31,4 @@ export default [
['authentication_user_password_change_dialog_submit', 'Изменить'],
['authentication_user_icon_tooltip', 'Пользователь'],
['authentication_role_icon_tooltip', 'Роль'],
['administration_configuration_wizard_configuration_admin', 'Учетные данные администратора'],
['administration_configuration_wizard_configuration_admin_name', 'Логин'],
['administration_configuration_wizard_configuration_admin_password', 'Пароль'],
['administration_configuration_wizard_configuration_anonymous_access', 'Разрешить анонимный доступ'],
['administration_configuration_wizard_configuration_anonymous_access_description', 'Позволяет работать с CloudBeaver без пользовательской аутентификации'],
['administration_configuration_wizard_configuration_authentication_group', 'Настройки аутентификации'],
['administration_configuration_wizard_configuration_services_group', 'Сервисы'],
['administration_configuration_wizard_configuration_authentication', 'Включить пользовательскую аутентификацию'],
['administration_configuration_wizard_configuration_authentication_description', 'Позволяет пользователям аутентифицироваться. Иначе будет включен анонимный доступ'],
['administration_identity_providers_tab_title', 'Провайдеры идентификации'],
['administration_identity_providers_provider', 'Провайдер'],
['administration_identity_providers_provider_id', 'Идентификатор'],
['administration_identity_providers_provider_configuration_name', 'Название конфигурации'],
['administration_identity_providers_provider_configuration_disabled', 'Отключена'],
['administration_identity_providers_provider_configuration_description', 'Описание'],
['administration_identity_providers_provider_configuration_icon_url', 'URL Иконки'],
['administration_identity_providers_provider_configuration_parameters', 'Параметры'],
['administration_identity_providers_provider_configuration_links', 'Ссылки'],
['administration_identity_providers_provider_configuration_links_metadata', 'Скачать файл метаданных'],
['administration_identity_providers_wizard_description', 'Добавьте провайдеры идентификации'],
['administration_identity_providers_configuration_add', 'Создание конфигурации'],
['administration_identity_providers_choose_provider_placeholder', 'Выберите провайдер...'],
['administration_identity_providers_add_tooltip', 'Добавить новую конфигурацию'],
['administration_identity_providers_refresh_tooltip', 'Обновить список конфигураций'],
['administration_identity_providers_delete_tooltip', 'Удалить выбранные конфигурации'],
['administration_identity_providers_delete_confirmation', 'Вы собираетесь удалить следующие конфигурации: '],
['administration_identity_providers_provider_save_error', 'Ошибка при сохранении конфигурации'],
['administration_identity_providers_provider_create_error', 'Ошибка при создании конфигурации'],
['administration_identity_providers_configuration_list_update_success', 'Список конфигураций успешно обновлен'],
['administration_identity_providers_configuration_list_update_fail', 'Не удалось обновить список конфигураций'],
['administration_identity_providers_service_link', 'Настроить'],
['administration_roles_tab_title', 'Роли'],
['administration_roles_tab_description', 'Управление ролями'],
['administration_roles_role_creation', 'Создание роли'],
['administration_roles_role_id', 'ID Роли'],
['administration_roles_role_name', 'Название роли'],
['administration_roles_role_description', 'Описание'],
['administration_roles_role_create_error', 'Не удалось создать роль'],
['administration_roles_role_save_error', 'Не удалось обновить роль'],
['administration_roles_role_list_update_success', 'Список ролей обновлен'],
['administration_roles_role_list_update_fail', 'Не удалось обновить список ролей'],
['administration_roles_add_tooltip', 'Создать новую роль'],
['administration_roles_refresh_tooltip', 'Обновить список ролей'],
['administration_roles_delete_tooltip', 'Удалить выбранные роли'],
['administration_roles_delete_confirmation', 'Вы собираетесь удалить следующие роли: '],
['administration_roles_role_granted_users_tab_title', 'Пользователи'],
['administration_roles_role_granted_users_search_placeholder', 'Поиск по ID пользователя...'],
['administration_roles_role_granted_users_user_id', 'ID пользователя'],
['administration_roles_role_granted_users_user_name', 'Имя пользователя'],
['administration_roles_role_granted_users_empty', 'Нет доступных пользователей'],
['administration_roles_role_granted_users_permission_denied', 'Вы не можете редактировать свои настройки доступа'],
['administration_roles_role_granted_connections_tab_title', 'Подключения'],
['administration_roles_role_granted_connections_search_placeholder', 'Поиск по названию подключения...'],
['administration_roles_role_granted_connections_empty', 'Нет доступных подключений'],
];
@@ -16,14 +16,10 @@
},
"dependencies": {
"codemirror": "^5.63.3",
"react-codemirror2": "^7.2.1",
"prettier": "^2.4.1",
"sql-formatter": "^4.0.2"
"react-codemirror2": "^7.2.1"
},
"devDependencies": {
"@types/codemirror": "^5.60.5",
"@types/prettier": "^2.4.1",
"@types/sql-formatter": "^4.0.1"
"@types/codemirror": "^5.60.5"
},
"peerDependencies": {
"@cloudbeaver/core-administration": "^0.1.0",
@@ -12,19 +12,9 @@ export async function formatValue(value: string, mode: string | undefined): Prom
case 'application/json':
return JSON.stringify(JSON.parse(value), null, 2);
case 'text/html':
case 'text/xml': {
const prettier = await import('prettier');
const parserHTML = await import('prettier/parser-html');
return prettier.format(value, {
plugins: [parserHTML],
});
}
case 'text/xml':
return value;
default:
if (!mode || mode.includes('sql')) {
const { format } = await import('sql-formatter');
return format(value);
}
return value;
}
} catch {
@@ -7,9 +7,6 @@
*/
import type { ModeSpec } from 'codemirror';
import prettier from 'prettier';
import parserHTML from 'prettier/parser-html';
import { format as formatSQL } from 'sql-formatter';
import { useObjectRef } from '@cloudbeaver/core-blocks';
@@ -30,13 +27,8 @@ export function useAutoFormat(mode: string | ModeSpec<any> | undefined) {
return JSON.stringify(JSON.parse(value), null, 2);
case 'text/xml':
case 'text/html':
return prettier.format(value, {
plugins: [parserHTML],
});
return value;
default:
if (this.mode.includes('sql')) {
return formatSQL(value);
}
return value;
}
} catch {
@@ -34,5 +34,8 @@
"@cloudbeaver/plugin-sql-editor": "0.1.0",
"@cloudbeaver/plugin-sql-editor-navigation-tab": "0.1.0",
"@cloudbeaver/plugin-sql-editor-screen": "0.1.0"
},
"product": {
"name": "CloudBeaver Community"
}
}
@@ -3,7 +3,7 @@
<head>
<%= require('html-loader?{"sources":false}!@cloudbeaver/core-blocks/src/HTMLTemplates/head.html.ejs').default %>
<title>CloudBeaver</title>
<title><%= htmlWebpackPlugin.options.title %></title>
</head>
<body class="theme-typography">
-24
View File
@@ -3308,11 +3308,6 @@
resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0"
integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==
"@types/prettier@^2.4.1":
version "2.4.1"
resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.4.1.tgz#e1303048d5389563e130f5bdd89d37a99acb75eb"
integrity sha512-Fo79ojj3vdEZOHg3wR9ksAMRz4P3S5fDB5e/YWZiFnyFQI1WY2Vftu9XoXVVtJfxB7Bpce/QTqWSSntkz2Znrw==
"@types/prop-types@*":
version "15.7.3"
resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7"
@@ -3366,13 +3361,6 @@
resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39"
integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==
"@types/sql-formatter@^4.0.1":
version "4.0.1"
resolved "https://registry.yarnpkg.com/@types/sql-formatter/-/sql-formatter-4.0.1.tgz#3c15dc3e50335e7909d6c01f1a4fd66da05e82a3"
integrity sha512-WLSHjarjiUz4GtQivyaDbagqJNHcFA1XOAvrgXmWLl1OeTCP0RuiFB1PtUIH4ArOqZX1Hk6ANzABWe6nw9nKpg==
dependencies:
sql-formatter "*"
"@types/tern@*":
version "0.23.4"
resolved "https://registry.yarnpkg.com/@types/tern/-/tern-0.23.4.tgz#03926eb13dbeaf3ae0d390caf706b2643a0127fb"
@@ -11064,11 +11052,6 @@ prettier@1.18.2:
resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.18.2.tgz#6823e7c5900017b4bd3acf46fe9ac4b4d7bda9ea"
integrity sha512-OeHeMc0JhFE9idD4ZdtNibzY0+TPHSpSSb9h8FqtP+YnoZZ1sl8Vc9b1sasjfymH3SonAF4QcA2+mzHPhMvIiw==
prettier@^2.4.1:
version "2.4.1"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.4.1.tgz#671e11c89c14a4cfc876ce564106c4a6726c9f5c"
integrity sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA==
pretty-error@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-4.0.0.tgz#90a703f46dd7234adb46d0f84823e9d1cb8f10d6"
@@ -12514,13 +12497,6 @@ sprintf-js@~1.0.2:
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
sql-formatter@*, sql-formatter@^4.0.2:
version "4.0.2"
resolved "https://registry.yarnpkg.com/sql-formatter/-/sql-formatter-4.0.2.tgz#2b359e5a4c611498d327b9659da7329d71724607"
integrity sha512-R6u9GJRiXZLr/lDo8p56L+OyyN2QFJPCDnsyEOsbdIpsnDKL8gubYFo7lNR7Zx7hfdWT80SfkoVS0CMaF/DE2w==
dependencies:
argparse "^2.0.1"
sshpk@^1.7.0:
version "1.16.1"
resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877"