fix: some actions should be hidden for read-only user (#855)

* fix: some actions limited for virt-viewer

Signed-off-by: Andy Lee <andy.lee@suse.com>

* refactor: based on schema collectionMethods

Signed-off-by: Andy Lee <andy.lee@suse.com>

* fix: conditionally add migrate action to available actions

* fix: update collectionMethods check to use find for case-insensitive matching

* fix: update canEditClusterMembers method to use schema for collectionMethods

* fix: update canCreateImage check to use case-insensitive matching

---------

Signed-off-by: Andy Lee <andy.lee@suse.com>
This commit is contained in:
Andy Lee
2026-05-07 10:21:26 +08:00
committed by GitHub
parent 032700293c
commit 5cc8b4c301
15 changed files with 111 additions and 14 deletions
@@ -52,6 +52,7 @@ export default class HciVmImage extends HarvesterResource {
canCreateVM = false;
}
const canCreateImage = !!this.$getters?.['schemaFor']?.(HCI.IMAGE)?.collectionMethods?.some((method) => method.toLowerCase() === 'post');
const customActions = this.isReady ? [
{
action: 'createFromImage',
@@ -61,13 +62,13 @@ export default class HciVmImage extends HarvesterResource {
},
{
action: 'encryptImage',
enabled: this.volumeEncryptionFeatureEnabled && !this.isEncrypted,
enabled: this.volumeEncryptionFeatureEnabled && !this.isEncrypted && canCreateImage,
icon: 'icon icon-lock',
label: this.t('harvester.action.encryptImage'),
},
{
action: 'decryptImage',
enabled: this.volumeEncryptionFeatureEnabled && this.isEncrypted,
enabled: this.volumeEncryptionFeatureEnabled && this.isEncrypted && canCreateImage,
icon: 'icon icon-unlock',
label: this.t('harvester.action.decryptImage'),
},