diff --git a/webapp/packages/core-authentication/src/UserInfoResource.ts b/webapp/packages/core-authentication/src/UserInfoResource.ts index da8611342f..291fd2074a 100644 --- a/webapp/packages/core-authentication/src/UserInfoResource.ts +++ b/webapp/packages/core-authentication/src/UserInfoResource.ts @@ -44,7 +44,7 @@ export class UserInfoResource extends CachedDataResource { +export class UsersResource extends CachedMapResource { private metadata: MetadataMap; constructor( private graphQLService: GraphQLService, @@ -70,7 +71,7 @@ export class UsersResource extends CachedMapResource { async create({ userId, roles, credentials, grantedConnections, - }: UserCreateOptions): Promise { + }: UserCreateOptions): Promise { const { user } = await this.graphQLService.sdk.createUser({ userId }); try { @@ -152,7 +153,7 @@ export class UsersResource extends CachedMapResource { this.metadata.set('all', false); } - protected async loader(key: ResourceKey): Promise> { + protected async loader(key: ResourceKey): Promise> { const userId = key === 'all' ? undefined : key as string; const { users } = await this.graphQLService.sdk.getUsersList({ userId }); @@ -163,7 +164,7 @@ export class UsersResource extends CachedMapResource { } for (const user of users) { - this.set(user.userId, user as AdminUserInfo); + this.set(user.userId, user as AdminUser); } this.markUpdated(key); diff --git a/webapp/packages/core-connections/src/Administration/Connections/ConnectionForm/ConnectionAccess/Controller.ts b/webapp/packages/core-connections/src/Administration/Connections/ConnectionForm/ConnectionAccess/Controller.ts index 64df070638..988cae7bfb 100644 --- a/webapp/packages/core-connections/src/Administration/Connections/ConnectionForm/ConnectionAccess/Controller.ts +++ b/webapp/packages/core-connections/src/Administration/Connections/ConnectionForm/ConnectionAccess/Controller.ts @@ -8,9 +8,9 @@ import { computed, observable } from 'mobx'; -import { UsersResource, RolesResource } from '@cloudbeaver/core-authentication'; +import { UsersResource, RolesResource, AdminUser } from '@cloudbeaver/core-authentication'; import { injectable, IInitializableController } from '@cloudbeaver/core-di'; -import { AdminRoleInfo, AdminSubjectType, AdminUserInfo } from '@cloudbeaver/core-sdk'; +import { AdminRoleInfo, AdminSubjectType } from '@cloudbeaver/core-sdk'; import { IConnectionFormModel } from '../IConnectionFormModel'; @@ -19,7 +19,7 @@ export class Controller implements IInitializableController { @observable selectedSubjects: Map = new Map(); - @computed get users(): AdminUserInfo[] { + @computed get users(): AdminUser[] { return Array.from(this.usersResource.data.values()); } diff --git a/webapp/packages/plugin-authentication/src/Administration/Users/CreateUser.tsx b/webapp/packages/plugin-authentication/src/Administration/Users/CreateUser.tsx index f6d75edf96..30962f8633 100644 --- a/webapp/packages/plugin-authentication/src/Administration/Users/CreateUser.tsx +++ b/webapp/packages/plugin-authentication/src/Administration/Users/CreateUser.tsx @@ -9,10 +9,10 @@ import styled, { css } from 'reshadow'; import { Translate } from '@cloudbeaver/core-localization'; -import { AdminUserInfo } from '@cloudbeaver/core-sdk'; import { useStyles, composes } from '@cloudbeaver/core-theming'; import { UserForm } from './UserForm/UserForm'; +import { CreatingUser } from './UsersAdministrationController'; const styles = composes( css` @@ -59,7 +59,7 @@ const styles = composes( ); interface Props { - user: AdminUserInfo; + user: CreatingUser; onCancel: () => void; } diff --git a/webapp/packages/plugin-authentication/src/Administration/Users/UserForm/UserForm.tsx b/webapp/packages/plugin-authentication/src/Administration/Users/UserForm/UserForm.tsx index 4d92dab715..8fe06fdb3c 100644 --- a/webapp/packages/plugin-authentication/src/Administration/Users/UserForm/UserForm.tsx +++ b/webapp/packages/plugin-authentication/src/Administration/Users/UserForm/UserForm.tsx @@ -21,9 +21,9 @@ import { } from '@cloudbeaver/core-blocks'; import { useController } from '@cloudbeaver/core-di'; import { useTranslate } from '@cloudbeaver/core-localization'; -import { AdminUserInfo } from '@cloudbeaver/core-sdk'; import { useStyles, composes } from '@cloudbeaver/core-theming'; +import { CreatingUser } from '../UsersAdministrationController'; import { GrantedConnections } from './GrantedConnections'; import { UserFormController } from './UserFormController'; @@ -103,7 +103,7 @@ const styles = composes( ); interface Props { - user: AdminUserInfo; + user: CreatingUser; editing?: boolean; onCancel: () => void; } diff --git a/webapp/packages/plugin-authentication/src/Administration/Users/UserForm/UserFormController.ts b/webapp/packages/plugin-authentication/src/Administration/Users/UserForm/UserFormController.ts index d445b76a92..0ac52d7b74 100644 --- a/webapp/packages/plugin-authentication/src/Administration/Users/UserForm/UserFormController.ts +++ b/webapp/packages/plugin-authentication/src/Administration/Users/UserForm/UserFormController.ts @@ -15,9 +15,11 @@ import { CommonDialogService } from '@cloudbeaver/core-dialogs'; import { NotificationService } from '@cloudbeaver/core-events'; import { ErrorDetailsDialog } from '@cloudbeaver/core-notifications'; import { - GQLErrorCatcher, AdminUserInfo, AdminConnectionGrantInfo, AdminSubjectType + GQLErrorCatcher, AdminConnectionGrantInfo, AdminSubjectType } from '@cloudbeaver/core-sdk'; +import { CreatingUser } from '../UsersAdministrationController'; + @injectable() export class UserFormController implements IInitializableController, IDestructibleController { readonly selectedConnections = observable(new Map()); @@ -39,7 +41,7 @@ export class UserFormController implements IInitializableController, IDestructib return Array.from(this.rolesManagerService.roles.data.values()); } - user!: AdminUserInfo; + user!: CreatingUser; readonly error = new GQLErrorCatcher(); private isDistructed = false; @@ -57,7 +59,7 @@ export class UserFormController implements IInitializableController, IDestructib private dbDriverResource: DBDriverResource ) { } - init(user: AdminUserInfo, editing: boolean, collapse: () => void) { + init(user: CreatingUser, editing: boolean, collapse: () => void) { this.user = user; this.editing = editing; this.collapse = collapse; diff --git a/webapp/packages/plugin-authentication/src/Administration/Users/UsersAdministrationController.ts b/webapp/packages/plugin-authentication/src/Administration/Users/UsersAdministrationController.ts index 15cb11aa36..78e54f9067 100644 --- a/webapp/packages/plugin-authentication/src/Administration/Users/UsersAdministrationController.ts +++ b/webapp/packages/plugin-authentication/src/Administration/Users/UsersAdministrationController.ts @@ -17,6 +17,8 @@ import { GQLErrorCatcher, resourceKeyList, AdminUserInfo } from '@cloudbeaver/co import { UsersAdministrationNavigationService } from './UsersAdministrationNavigationService'; +export type CreatingUser = Omit; + @injectable() export class UsersAdministrationController { @observable isDeleting = false; @@ -37,7 +39,7 @@ export class UsersAdministrationController { }); } - @observable creatingUser: AdminUserInfo | null = null; + @observable creatingUser: CreatingUser | null = null; get isLoading() { return this.usersResource.isLoading() || this.isDeleting; @@ -61,7 +63,7 @@ export class UsersAdministrationController { grantedConnections: [], configurationParameters: {}, metaParameters: {}, - } as AdminUserInfo; + }; this.usersAdministrationNavigationService.navToAdd(); }; diff --git a/webapp/packages/plugin-authentication/src/Administration/Users/UsersTable/User.tsx b/webapp/packages/plugin-authentication/src/Administration/Users/UsersTable/User.tsx index 686c90890d..e5f32938d0 100644 --- a/webapp/packages/plugin-authentication/src/Administration/Users/UsersTable/User.tsx +++ b/webapp/packages/plugin-authentication/src/Administration/Users/UsersTable/User.tsx @@ -9,10 +9,10 @@ import { observer } from 'mobx-react'; import styled, { css } from 'reshadow'; +import { AdminUser } from '@cloudbeaver/core-authentication'; import { TableItem, TableColumnValue, TableItemSelect, TableItemExpand } from '@cloudbeaver/core-blocks'; -import { AdminUserInfo } from '@cloudbeaver/core-sdk'; import { useStyles } from '@cloudbeaver/core-theming'; import { UserEdit } from './UserEdit'; @@ -24,7 +24,7 @@ const styles = css` `; interface Props { - user: AdminUserInfo; + user: AdminUser; } export const User = observer(function User({ user }: Props) { diff --git a/webapp/packages/plugin-authentication/src/Administration/Users/UsersTable/UsersTable.tsx b/webapp/packages/plugin-authentication/src/Administration/Users/UsersTable/UsersTable.tsx index 3a4b5449a4..9c38a00466 100644 --- a/webapp/packages/plugin-authentication/src/Administration/Users/UsersTable/UsersTable.tsx +++ b/webapp/packages/plugin-authentication/src/Administration/Users/UsersTable/UsersTable.tsx @@ -9,11 +9,11 @@ import { observer } from 'mobx-react'; import styled, { css, use } from 'reshadow'; +import { AdminUser } from '@cloudbeaver/core-authentication'; import { Table, TableHeader, TableColumnHeader, TableBody } from '@cloudbeaver/core-blocks'; import { useTranslate } from '@cloudbeaver/core-localization'; -import { AdminUserInfo } from '@cloudbeaver/core-sdk'; import { useStyles } from '@cloudbeaver/core-theming'; import { User } from './User'; @@ -28,7 +28,7 @@ const styles = css` `; interface Props { - users: AdminUserInfo[]; + users: AdminUser[]; selectedItems: Map; expandedItems: Map; }