From 7451f45885ffc941d877a840fc603140cc5a5883 Mon Sep 17 00:00:00 2001 From: Pierre Donias Date: Mon, 30 May 2022 15:02:03 +0200 Subject: [PATCH] fix(xo-web/home): don't make VM's resource set name clickable for non-admins (#6252) See https://xcp-ng.org/forum/topic/5902/permissions-for-users-to-be-able-to-snapshot/5?_=1653902135402 Non-admin users aren't allowed to view the Self Service page so it doesn't make sense to have a link to that page --- CHANGELOG.unreleased.md | 1 + packages/xo-web/src/xo-app/home/vm-item.js | 11 ++++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.unreleased.md b/CHANGELOG.unreleased.md index 8f33d448071..6f64d896eef 100644 --- a/CHANGELOG.unreleased.md +++ b/CHANGELOG.unreleased.md @@ -21,6 +21,7 @@ - [S3] Fix S3 remote with empty directory not showing anything to restore (PR [#6218](https://github.com/vatesfr/xen-orchestra/pull/6218)) - [S3] remote fom did not save the `https` and `allow unatuhorized`during remote creation (PR [#6219](https://github.com/vatesfr/xen-orchestra/pull/6219)) - [VM/advanced] Fix various errors when adding ACLs [#6213](https://github.com/vatesfr/xen-orchestra/issues/6213) (PR [#6230](https://github.com/vatesfr/xen-orchestra/pull/6230)) +- [Home/Self] Don't make VM's resource set name clickable for non admin users as they aren't allowed to view the Self Service page (PR [#6252](https://github.com/vatesfr/xen-orchestra/pull/6252)) ### Packages to release diff --git a/packages/xo-web/src/xo-app/home/vm-item.js b/packages/xo-web/src/xo-app/home/vm-item.js index 27e411f74b4..4f3183904a5 100644 --- a/packages/xo-web/src/xo-app/home/vm-item.js +++ b/packages/xo-web/src/xo-app/home/vm-item.js @@ -13,7 +13,7 @@ import { Text, XoSelect } from 'editable' import { isEmpty, map } from 'lodash' import { addTag, editVm, fetchVmStats, migrateVm, removeTag, startVm, stopVm, subscribeResourceSets } from 'xo' import { addSubscriptions, connectStore, formatSizeShort, osFamily } from 'utils' -import { createFinder, createGetObject, createGetVmDisks, createSelector, createSumBy } from 'selectors' +import { createFinder, createGetObject, createGetVmDisks, createSelector, createSumBy, isAdmin } from 'selectors' import MiniStats from './mini-stats' import styles from './index.css' @@ -23,6 +23,7 @@ import styles from './index.css' }) @connectStore(() => ({ container: createGetObject((_, props) => props.item.$container), + isAdmin, totalDiskSize: createSumBy( createGetVmDisks((_, props) => props.item), 'size' @@ -65,7 +66,7 @@ export default class VmItem extends Component { ) render() { - const { item: vm, container, expandAll, selected } = this.props + const { item: vm, container, expandAll, isAdmin, selected } = this.props const resourceSet = this._getResourceSet() const state = this._getVmState() @@ -189,7 +190,11 @@ export default class VmItem extends Component { {resourceSet && ( {_('homeResourceSet', { - resourceSet: {resourceSet.name}, + resourceSet: isAdmin ? ( + {resourceSet.name} + ) : ( + resourceSet.name + ), })} )}