diff --git a/plugins/metrics/src/main/java/org/apache/cloudstack/api/ListVMsMetricsCmd.java b/plugins/metrics/src/main/java/org/apache/cloudstack/api/ListVMsMetricsCmd.java index 1cec5a31612..9b8564c2c8b 100644 --- a/plugins/metrics/src/main/java/org/apache/cloudstack/api/ListVMsMetricsCmd.java +++ b/plugins/metrics/src/main/java/org/apache/cloudstack/api/ListVMsMetricsCmd.java @@ -18,7 +18,7 @@ package org.apache.cloudstack.api; import org.apache.cloudstack.acl.RoleType; -import org.apache.cloudstack.api.command.admin.vm.ListVMsCmdByAdmin; +import org.apache.cloudstack.api.command.user.vm.ListVMsCmd; import org.apache.cloudstack.api.response.ListResponse; import org.apache.cloudstack.api.response.UserVmResponse; import org.apache.cloudstack.metrics.MetricsService; @@ -30,7 +30,7 @@ import java.util.List; @APICommand(name = ListVMsMetricsCmd.APINAME, description = "Lists VM metrics", responseObject = VmMetricsResponse.class, requestHasSensitiveInfo = false, responseHasSensitiveInfo = false, responseView = ResponseObject.ResponseView.Full, since = "4.9.3", authorized = {RoleType.Admin, RoleType.ResourceAdmin, RoleType.DomainAdmin, RoleType.User}) -public class ListVMsMetricsCmd extends ListVMsCmdByAdmin { +public class ListVMsMetricsCmd extends ListVMsCmd { public static final String APINAME = "listVirtualMachinesMetrics"; @Inject diff --git a/server/src/main/java/com/cloud/api/query/QueryManagerImpl.java b/server/src/main/java/com/cloud/api/query/QueryManagerImpl.java index 1847d511a66..8cac107d19b 100644 --- a/server/src/main/java/com/cloud/api/query/QueryManagerImpl.java +++ b/server/src/main/java/com/cloud/api/query/QueryManagerImpl.java @@ -837,7 +837,8 @@ public class QueryManagerImpl extends MutualExclusiveIdsManagerBase implements Q Pair, Integer> result = searchForUserVMsInternal(cmd); ListResponse response = new ListResponse(); ResponseView respView = ResponseView.Restricted; - if (cmd instanceof ListVMsCmdByAdmin) { + Account caller = CallContext.current().getCallingAccount(); + if (_accountMgr.isRootAdmin(caller.getId())) { respView = ResponseView.Full; } List vmResponses = ViewResponseHelper.createUserVmResponse(respView, "virtualmachine", cmd.getDetails(), result.first().toArray(new UserVmJoinVO[result.first().size()])); @@ -1766,7 +1767,7 @@ public class QueryManagerImpl extends MutualExclusiveIdsManagerBase implements Q ResponseView respView = cmd.getResponseView(); Account account = CallContext.current().getCallingAccount(); - if (_accountMgr.isAdmin(account.getAccountId())) { + if (_accountMgr.isRootAdmin(account.getAccountId())) { respView = ResponseView.Full; }