Skip to content

Commit 7eb591a

Browse files
fix: [UIE-9555] - IAM: clone Volume permission fix (linode#13065)
* fix: [UIE-9555] - IAM: clone Volume permission fix * Added changeset: IAM: incorrect permission check disabled Clone Volume for volume_admin role
1 parent aaeabe8 commit 7eb591a

File tree

4 files changed

+16
-20
lines changed

4 files changed

+16
-20
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@linode/manager": Fixed
3+
---
4+
5+
IAM: incorrect permission check disabled Clone Volume for volume_admin role ([#13065](https://github.com/linode/manager/pull/13065))

packages/manager/src/features/Volumes/Partials/VolumesActionMenu.test.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ describe('Volume action menu', () => {
4444
queryMocks.usePermissions.mockReturnValue({
4545
update_volume: true,
4646
attach_volume: true,
47-
create_volume: true,
4847
delete_volume: true,
4948
resize_volume: true,
5049
clone_volume: true,

packages/manager/src/features/Volumes/Partials/VolumesActionMenu.tsx

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ export const VolumesActionMenu = (props: Props) => {
3434
const isAttached = volume.linode_id !== null;
3535

3636
const { data: accountPermissions } = usePermissions('account', [
37-
'create_volume',
3837
'is_account_admin',
3938
]);
4039
const { data: volumePermissions, isLoading } = usePermissions(
@@ -97,18 +96,16 @@ export const VolumesActionMenu = (props: Props) => {
9796
: undefined,
9897
},
9998
CLONE: {
100-
disabled:
101-
!volumePermissions?.clone_volume || !accountPermissions?.create_volume,
99+
disabled: !volumePermissions?.clone_volume,
102100
onClick: handlers.handleClone,
103101
title: 'Clone',
104-
tooltip:
105-
!volumePermissions?.clone_volume || !accountPermissions?.create_volume
106-
? getRestrictedResourceText({
107-
action: 'clone',
108-
isSingular: true,
109-
resourceType: 'Volumes',
110-
})
111-
: undefined,
102+
tooltip: !volumePermissions?.clone_volume
103+
? getRestrictedResourceText({
104+
action: 'clone',
105+
isSingular: true,
106+
resourceType: 'Volumes',
107+
})
108+
: undefined,
112109
},
113110
ATTACH: {
114111
disabled: !volumePermissions?.attach_volume,

packages/manager/src/features/Volumes/VolumeDrawers/CloneVolumeDrawer/CloneVolumeDrawer.tsx

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -39,16 +39,11 @@ const initialValues = { label: '' };
3939
export const CloneVolumeDrawer = (props: Props) => {
4040
const { isFetching, onClose: _onClose, open, volume, volumeError } = props;
4141

42-
const { data: accountPermissions } = usePermissions('account', [
43-
'create_volume',
44-
]);
4542
const { data: volumePermissions } = usePermissions(
4643
'volume',
4744
['clone_volume'],
4845
volume?.id
4946
);
50-
const canCloneVolume =
51-
volumePermissions?.clone_volume && accountPermissions?.create_volume;
5247

5348
const { mutateAsync: cloneVolume } = useCloneVolumeMutation();
5449

@@ -104,7 +99,7 @@ export const CloneVolumeDrawer = (props: Props) => {
10499
title="Clone Volume"
105100
>
106101
<form onSubmit={handleSubmit}>
107-
{!canCloneVolume && (
102+
{!volumePermissions?.clone_volume && (
108103
<Notice
109104
spacingBottom={12}
110105
text="You don't have permission to clone this volume."
@@ -118,7 +113,7 @@ export const CloneVolumeDrawer = (props: Props) => {
118113
be available in {volume?.region}.
119114
</Typography>
120115
<TextField
121-
disabled={!canCloneVolume}
116+
disabled={!volumePermissions?.clone_volume}
122117
errorText={touched.label ? errors.label : undefined}
123118
label="Label"
124119
name="label"
@@ -149,7 +144,7 @@ export const CloneVolumeDrawer = (props: Props) => {
149144
/>
150145
<ActionsPanel
151146
primaryButtonProps={{
152-
disabled: !canCloneVolume || isInvalidPrice,
147+
disabled: !volumePermissions?.clone_volume || isInvalidPrice,
153148
label: 'Clone Volume',
154149
loading: isSubmitting,
155150
tooltipText:

0 commit comments

Comments
 (0)