|
719 | 719 | import com.cloud.deploy.DeploymentPlanner; |
720 | 720 | import com.cloud.deploy.DeploymentPlanner.ExcludeList; |
721 | 721 | import com.cloud.deploy.DeploymentPlanningManager; |
| 722 | +import com.cloud.domain.Domain; |
722 | 723 | import com.cloud.domain.DomainVO; |
723 | 724 | import com.cloud.domain.dao.DomainDao; |
724 | 725 | import com.cloud.event.ActionEvent; |
@@ -4692,6 +4693,14 @@ public Map<String, Object> listCapabilities(final ListCapabilitiesCmd cmd) { |
4692 | 4693 | final Map<String, Object> capabilities = new HashMap<>(); |
4693 | 4694 |
|
4694 | 4695 | final Account caller = getCaller(); |
| 4696 | + Long domainId = cmd.getDomainId(); |
| 4697 | + if (domainId == null) { |
| 4698 | + domainId = caller.getDomainId(); |
| 4699 | + } else { |
| 4700 | + Domain domain = _domainDao.findById(domainId); |
| 4701 | + _accountService.checkAccess(caller, domain); |
| 4702 | + } |
| 4703 | + |
4695 | 4704 | final boolean isCallerRootAdmin = _accountService.isRootAdmin(caller.getId()); |
4696 | 4705 | final boolean isCallerAdmin = isCallerRootAdmin || _accountService.isAdmin(caller.getId()); |
4697 | 4706 | boolean securityGroupsEnabled = false; |
@@ -4726,7 +4735,7 @@ public Map<String, Object> listCapabilities(final ListCapabilitiesCmd cmd) { |
4726 | 4735 | final boolean allowUserExpungeRecoverVolume = (VolumeApiServiceImpl.AllowUserExpungeRecoverVolume.valueIn(caller.getId()) | isCallerAdmin); |
4727 | 4736 | final boolean allowUserForceStopVM = (UserVmManager.AllowUserForceStopVm.valueIn(caller.getId()) | isCallerAdmin); |
4728 | 4737 |
|
4729 | | - final boolean allowUserViewAllDomainAccounts = (QueryService.AllowUserViewAllDomainAccounts.valueIn(caller.getDomainId())); |
| 4738 | + final boolean allowUserViewAllDomainAccounts = (QueryService.AllowUserViewAllDomainAccounts.valueIn(domainId)); |
4730 | 4739 |
|
4731 | 4740 | final boolean kubernetesServiceEnabled = Boolean.parseBoolean(_configDao.getValue("cloud.kubernetes.service.enabled")); |
4732 | 4741 | final boolean kubernetesClusterExperimentalFeaturesEnabled = Boolean.parseBoolean(_configDao.getValue("cloud.kubernetes.cluster.experimental.features.enabled")); |
@@ -4779,7 +4788,6 @@ public Map<String, Object> listCapabilities(final ListCapabilitiesCmd cmd) { |
4779 | 4788 | } |
4780 | 4789 | capabilities.put(ApiConstants.ADDITONAL_CONFIG_ENABLED, UserVmManager.EnableAdditionalVmConfig.valueIn(caller.getId())); |
4781 | 4790 |
|
4782 | | - Long domainId = caller.getDomainId(); |
4783 | 4791 | Map<String, Object> vpnParams = getVpnCustomerGatewayParameters(domainId); |
4784 | 4792 | if (!vpnParams.isEmpty()) { |
4785 | 4793 | capabilities.put(ApiConstants.VPN_CUSTOMER_GATEWAY_PARAMETERS, vpnParams); |
|
0 commit comments