@@ -10,6 +10,7 @@ import {PDiskInfo} from '../../../components/PDiskInfo/PDiskInfo';
1010import { ProgressViewer } from '../../../components/ProgressViewer/ProgressViewer' ;
1111import { StatusIcon } from '../../../components/StatusIcon/StatusIcon' ;
1212import { VDiskInfo } from '../../../components/VDiskInfo/VDiskInfo' ;
13+ import { selectIsUserAllowedToMakeChanges } from '../../../store/reducers/authentication/authentication' ;
1314import type {
1415 PreparedStructurePDisk ,
1516 PreparedStructureVDisk ,
@@ -22,6 +23,7 @@ import {cn} from '../../../utils/cn';
2223import { DEFAULT_TABLE_SETTINGS } from '../../../utils/constants' ;
2324import { formatStorageValuesToGb } from '../../../utils/dataFormatters/dataFormatters' ;
2425import { createVDiskDeveloperUILink } from '../../../utils/developerUI/developerUI' ;
26+ import { useTypedSelector } from '../../../utils/hooks' ;
2527import i18n from '../i18n' ;
2628
2729import { PDiskTitleBadge } from './PDiskTitleBadge' ;
@@ -56,10 +58,12 @@ function getColumns({
5658 pDiskId,
5759 selectedVdiskId,
5860 nodeId,
61+ withDeveloperUILink,
5962} : {
6063 pDiskId : number | undefined ;
6164 selectedVdiskId ?: string ;
6265 nodeId ?: string | number ;
66+ withDeveloperUILink ?: boolean ;
6367} ) {
6468 const columns : Column < PreparedStructureVDisk > [ ] = [
6569 {
@@ -85,7 +89,7 @@ function getColumns({
8589 return (
8690 < div className = { b ( 'vdisk-id' , { selected : row . id === selectedVdiskId } ) } >
8791 < span > { vDiskSlotId } </ span >
88- { vdiskInternalViewerLink && (
92+ { vdiskInternalViewerLink && withDeveloperUILink ? (
8993 < Button
9094 size = "s"
9195 className = { b ( 'external-button' , { hidden : true } ) }
@@ -95,7 +99,7 @@ function getColumns({
9599 >
96100 < Icon data = { ArrowUpRightFromSquare } />
97101 </ Button >
98- ) }
102+ ) : null }
99103 </ div >
100104 ) ;
101105 } ,
@@ -167,6 +171,8 @@ export function PDisk({
167171 nodeId,
168172 unfolded : unfoldedFromProps ,
169173} : PDiskProps ) {
174+ const isUserAllowedToMakeChanges = useTypedSelector ( selectIsUserAllowedToMakeChanges ) ;
175+
170176 const [ unfolded , setUnfolded ] = React . useState ( unfoldedFromProps ?? false ) ;
171177
172178 const { TotalSize = 0 , AvailableSize = 0 , Device, PDiskId, Type, vDisks} = data ;
@@ -186,7 +192,12 @@ export function PDisk({
186192 < DataTable
187193 theme = "yandex-cloud"
188194 data = { vDisks }
189- columns = { getColumns ( { nodeId, pDiskId : PDiskId , selectedVdiskId} ) }
195+ columns = { getColumns ( {
196+ nodeId,
197+ pDiskId : PDiskId ,
198+ selectedVdiskId,
199+ withDeveloperUILink : isUserAllowedToMakeChanges ,
200+ } ) }
190201 settings = { { ...DEFAULT_TABLE_SETTINGS , dynamicRender : false } }
191202 rowClassName = { ( row ) => {
192203 return row . id === selectedVdiskId ? b ( 'selected-vdisk' ) : '' ;
0 commit comments