@@ -10,6 +10,7 @@ import {PDiskInfo} from '../../../components/PDiskInfo/PDiskInfo';
10
10
import { ProgressViewer } from '../../../components/ProgressViewer/ProgressViewer' ;
11
11
import { StatusIcon } from '../../../components/StatusIcon/StatusIcon' ;
12
12
import { VDiskInfo } from '../../../components/VDiskInfo/VDiskInfo' ;
13
+ import { selectIsUserAllowedToMakeChanges } from '../../../store/reducers/authentication/authentication' ;
13
14
import type {
14
15
PreparedStructurePDisk ,
15
16
PreparedStructureVDisk ,
@@ -22,6 +23,7 @@ import {cn} from '../../../utils/cn';
22
23
import { DEFAULT_TABLE_SETTINGS } from '../../../utils/constants' ;
23
24
import { formatStorageValuesToGb } from '../../../utils/dataFormatters/dataFormatters' ;
24
25
import { createVDiskDeveloperUILink } from '../../../utils/developerUI/developerUI' ;
26
+ import { useTypedSelector } from '../../../utils/hooks' ;
25
27
import i18n from '../i18n' ;
26
28
27
29
import { PDiskTitleBadge } from './PDiskTitleBadge' ;
@@ -56,10 +58,12 @@ function getColumns({
56
58
pDiskId,
57
59
selectedVdiskId,
58
60
nodeId,
61
+ withDeveloperUILink,
59
62
} : {
60
63
pDiskId : number | undefined ;
61
64
selectedVdiskId ?: string ;
62
65
nodeId ?: string | number ;
66
+ withDeveloperUILink ?: boolean ;
63
67
} ) {
64
68
const columns : Column < PreparedStructureVDisk > [ ] = [
65
69
{
@@ -85,7 +89,7 @@ function getColumns({
85
89
return (
86
90
< div className = { b ( 'vdisk-id' , { selected : row . id === selectedVdiskId } ) } >
87
91
< span > { vDiskSlotId } </ span >
88
- { vdiskInternalViewerLink && (
92
+ { vdiskInternalViewerLink && withDeveloperUILink ? (
89
93
< Button
90
94
size = "s"
91
95
className = { b ( 'external-button' , { hidden : true } ) }
@@ -95,7 +99,7 @@ function getColumns({
95
99
>
96
100
< Icon data = { ArrowUpRightFromSquare } />
97
101
</ Button >
98
- ) }
102
+ ) : null }
99
103
</ div >
100
104
) ;
101
105
} ,
@@ -167,6 +171,8 @@ export function PDisk({
167
171
nodeId,
168
172
unfolded : unfoldedFromProps ,
169
173
} : PDiskProps ) {
174
+ const isUserAllowedToMakeChanges = useTypedSelector ( selectIsUserAllowedToMakeChanges ) ;
175
+
170
176
const [ unfolded , setUnfolded ] = React . useState ( unfoldedFromProps ?? false ) ;
171
177
172
178
const { TotalSize = 0 , AvailableSize = 0 , Device, PDiskId, Type, vDisks} = data ;
@@ -186,7 +192,12 @@ export function PDisk({
186
192
< DataTable
187
193
theme = "yandex-cloud"
188
194
data = { vDisks }
189
- columns = { getColumns ( { nodeId, pDiskId : PDiskId , selectedVdiskId} ) }
195
+ columns = { getColumns ( {
196
+ nodeId,
197
+ pDiskId : PDiskId ,
198
+ selectedVdiskId,
199
+ withDeveloperUILink : isUserAllowedToMakeChanges ,
200
+ } ) }
190
201
settings = { { ...DEFAULT_TABLE_SETTINGS , dynamicRender : false } }
191
202
rowClassName = { ( row ) => {
192
203
return row . id === selectedVdiskId ? b ( 'selected-vdisk' ) : '' ;
0 commit comments