diff --git a/packages/ui/src/ui/containers/ACL/ManageAcl/ManageAcl.tsx b/packages/ui/src/ui/containers/ACL/ManageAcl/ManageAcl.tsx index 0e9096261..c148c3b5b 100644 --- a/packages/ui/src/ui/containers/ACL/ManageAcl/ManageAcl.tsx +++ b/packages/ui/src/ui/containers/ACL/ManageAcl/ManageAcl.tsx @@ -122,6 +122,7 @@ function ManageAcl(props: Props) { readApprovers: roleListValueToSubjectList(readApprovers), }, version, + mode: 'keep-missing-fields', }); }, [idmKind, path, updateAcl, version], diff --git a/packages/ui/src/ui/containers/ACL/ManageInheritance/ManageInheritance.tsx b/packages/ui/src/ui/containers/ACL/ManageInheritance/ManageInheritance.tsx index cda5448fd..b8fcb0fc2 100644 --- a/packages/ui/src/ui/containers/ACL/ManageInheritance/ManageInheritance.tsx +++ b/packages/ui/src/ui/containers/ACL/ManageInheritance/ManageInheritance.tsx @@ -88,6 +88,7 @@ function ManageInheritance(props: Props) { idmKind, values, version, + mode: 'keep-missing-fields', }); }, [idmKind, path, updateAcl, version], diff --git a/packages/ui/src/ui/pages/scheduling/Content/tabs/Overview/Overview.scss b/packages/ui/src/ui/pages/scheduling/Content/tabs/Overview/Overview.scss index 5751094e3..4e8b386fc 100644 --- a/packages/ui/src/ui/pages/scheduling/Content/tabs/Overview/Overview.scss +++ b/packages/ui/src/ui/pages/scheduling/Content/tabs/Overview/Overview.scss @@ -3,6 +3,8 @@ .scheduling-overview { $this: &; + padding-bottom: 50px; + &__toolbar { display: flex; diff --git a/packages/ui/src/ui/store/actions/acl.ts b/packages/ui/src/ui/store/actions/acl.ts index 709b706b3..3cdce2c57 100644 --- a/packages/ui/src/ui/store/actions/acl.ts +++ b/packages/ui/src/ui/store/actions/acl.ts @@ -23,7 +23,13 @@ import UIFactory from '../../UIFactory'; import {AclAction, HasIdmKind} from '../../store/reducers/acl/acl'; import {isCancelled} from '../../utils/cancel-helper'; import {RootState} from '../../store/reducers'; -import {IdmKindType, PreparedAclSubject, ResponsibleType, Role} from '../../utils/acl/acl-types'; +import { + IdmKindType, + PreparedAclSubject, + ResponsibleType, + Role, + UpdateAclParams, +} from '../../utils/acl/acl-types'; import {CheckPermissionResult} from '../../../shared/utils/check-permission'; import {YTApiId, ytApiV3Id} from '../../rum/rum-wrap-api'; @@ -342,7 +348,13 @@ export function updateAcl( values, version, idmKind, - }: {path: string; values: Partial; version?: string} & HasIdmKind, + mode, + }: { + path: string; + values: Partial; + version?: string; + mode?: UpdateAclParams['mode']; + } & HasIdmKind, {normalizedPoolTree}: HasNormPoolTree = {}, ): ThunkAclAction { return (dispatch, getState) => { @@ -364,6 +376,7 @@ export function updateAcl( version, idmKind, poolTree, + mode, }) .then(() => { dispatch({ diff --git a/packages/ui/src/ui/utils/accounts/editor.js b/packages/ui/src/ui/utils/accounts/editor.js index f59bbfeb0..78f4974b9 100644 --- a/packages/ui/src/ui/utils/accounts/editor.js +++ b/packages/ui/src/ui/utils/accounts/editor.js @@ -2,6 +2,7 @@ import reduce_ from 'lodash/reduce'; import yt from '@ytsaurus/javascript-wrapper/lib/yt'; +import {ROOT_ACCOUNT_NAME} from '../../constants/accounts/accounts'; import {EDITOR_TABS} from '../../constants/accounts/editor'; import hammer from '../../common/hammer'; import {Toaster} from '@gravity-ui/uikit'; @@ -16,12 +17,13 @@ const toaster = new Toaster(); const ERRRO_TOASTER_TIMEOUT = 10000; const SUCCESS_TOASTER_TIMEOUT = 5000; -export function setResponsibleUsers(cluster, users, accountName) { +export function setResponsibleUsers(cluster, users, accountName, inheritAcl) { const path = accountName; return updateAcl(cluster, path, { idmKind: IdmObjectType.ACCOUNT, responsible: users, + inheritAcl, }); } @@ -40,7 +42,12 @@ export function createAccountFromInfo(cluster, newAccountInfo) { return Promise.all([ setAccountAbc(account, id, slug).catch(() => {}), createHome ? createAccountHome(account).catch(() => {}) : Promise.resolve(), - setResponsibleUsers(cluster, responsibles, account).catch(() => {}), + setResponsibleUsers( + cluster, + responsibles, + account, + parentAccount !== ROOT_ACCOUNT_NAME, + ).catch(() => {}), ]); }); }; diff --git a/packages/ui/src/ui/utils/acl/acl-types.ts b/packages/ui/src/ui/utils/acl/acl-types.ts index 01dcef9cb..4f0d7939c 100644 --- a/packages/ui/src/ui/utils/acl/acl-types.ts +++ b/packages/ui/src/ui/utils/acl/acl-types.ts @@ -258,4 +258,5 @@ export interface UpdateAclParams { version?: string; poolTree?: string; comment?: string; + mode?: 'keep-missing-fields'; }