diff --git a/webapp/packages/plugin-authentication-administration/src/Administration/Users/UsersTable/User.tsx b/webapp/packages/plugin-authentication-administration/src/Administration/Users/UsersTable/User.tsx index b54604f60a..130131c2e3 100644 --- a/webapp/packages/plugin-authentication-administration/src/Administration/Users/UsersTable/User.tsx +++ b/webapp/packages/plugin-authentication-administration/src/Administration/Users/UsersTable/User.tsx @@ -9,11 +9,13 @@ import { observer } from 'mobx-react-lite'; import styled, { css, use } from 'reshadow'; -import type { AdminUser } from '@cloudbeaver/core-authentication'; +import { AdminUser, UsersResource } from '@cloudbeaver/core-authentication'; import { TableItem, TableColumnValue, TableItemSelect, TableItemExpand, Placeholder, Checkbox } from '@cloudbeaver/core-blocks'; import { useService } from '@cloudbeaver/core-di'; +import { NotificationService } from '@cloudbeaver/core-events'; +import { useTranslate } from '@cloudbeaver/core-localization'; import { useStyles } from '@cloudbeaver/core-theming'; import { UsersAdministrationService } from '../UsersAdministrationService'; @@ -36,6 +38,20 @@ interface Props { export const User = observer(function User({ user, selectable }) { const usersAdministrationService = useService(UsersAdministrationService); const roles = user.grantedRoles.join(', '); + const usersService = useService(UsersResource); + const notificationService = useService(NotificationService); + const translate = useTranslate(); + + async function handleEnabledCheckboxChange(enabled: boolean) { + try { + await usersService.enableUser(user.userId, enabled); + } catch (error: any) { + notificationService.logException(error); + } + } + + const enabledCheckboxTitle = usersService.isActiveUser(user.userId) + ? translate('administration_roles_role_granted_users_permission_denied') : undefined; return styled(useStyles(styles))( @@ -50,7 +66,12 @@ export const User = observer(function User({ user, selectable }) { {user.userId} {roles} - + diff --git a/webapp/packages/plugin-user-profile/src/index.ts b/webapp/packages/plugin-user-profile/src/index.ts index 61f245673e..4be3350f23 100644 --- a/webapp/packages/plugin-user-profile/src/index.ts +++ b/webapp/packages/plugin-user-profile/src/index.ts @@ -3,4 +3,4 @@ import { userProfilePlugin } from './manifest'; export default userProfilePlugin; export * from './UserMenu/MENU_USER_PROFILE'; -export * from './UserMenu/UserMenu'; +export * from './UserMenu/UserMenu'; \ No newline at end of file