From 8ab8fdc1db4fed4d906c69618980fda9ef710e6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Jandre?= <48719461+JoaoJandre@users.noreply.github.com> Date: Tue, 27 Sep 2022 05:26:07 -0300 Subject: [PATCH] Fix migrate volume permissions (#6224) * changed when to show migrate volume button on the UI. Co-authored-by: Joao --- .../src/main/resources/META-INF/db/schema-41710to41800.sql | 6 ++++++ ui/src/config/section/storage.js | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/engine/schema/src/main/resources/META-INF/db/schema-41710to41800.sql b/engine/schema/src/main/resources/META-INF/db/schema-41710to41800.sql index 859dc6b5e3d..ef40520991e 100644 --- a/engine/schema/src/main/resources/META-INF/db/schema-41710to41800.sql +++ b/engine/schema/src/main/resources/META-INF/db/schema-41710to41800.sql @@ -245,3 +245,9 @@ ALTER TABLE `cloud`.`vpc` ADD COLUMN `dns2` varchar(255) DEFAULT NULL COMMENT 'second IPv4 DNS for the vpc' AFTER `dns1`, ADD COLUMN `ip6dns1` varchar(255) DEFAULT NULL COMMENT 'first IPv6 DNS for the vpc' AFTER `dns2`, ADD COLUMN `ip6dns2` varchar(255) DEFAULT NULL COMMENT 'second IPv6 DNS for the vpc' AFTER `ip6dns1`; + +-- Fix migrateVolume permissions #6224. +DELETE role_perm +FROM role_permissions role_perm +INNER JOIN roles ON role_perm.role_id = roles.id +WHERE roles.role_type != 'Admin' AND roles.is_default = 1 AND role_perm.rule = 'migrateVolume'; diff --git a/ui/src/config/section/storage.js b/ui/src/config/section/storage.js index a5623b3eb93..54e62a4eff1 100644 --- a/ui/src/config/section/storage.js +++ b/ui/src/config/section/storage.js @@ -188,12 +188,13 @@ export default { }, { api: 'migrateVolume', + permission: ['migrateVolume', 'findStoragePoolsForMigration', 'listStoragePools', 'listDiskOfferings'], icon: 'drag-outlined', docHelp: 'adminguide/storage.html#id2', label: 'label.migrate.volume', args: ['volumeid', 'storageid', 'livemigrate'], dataView: true, - show: (record, store) => { return record.state === 'Ready' && ['Admin'].includes(store.userInfo.roletype) }, + show: (record, store) => { return record.state === 'Ready' }, popup: true, component: shallowRef(defineAsyncComponent(() => import('@/views/storage/MigrateVolume.vue'))) },