add acl response check

This commit is contained in:
Gabriel P Santos 2024-09-09 17:05:13 -03:00 committed by Gabriel P. Santos
parent 732fe9740a
commit 6fcbd14f3b
1 changed files with 20 additions and 8 deletions

View File

@ -1262,6 +1262,25 @@ public class ApiResponseHelper implements ResponseGenerator, ResourceIdSupport {
vpcUuidSetter.accept(vpc.getUuid());
}
private void setAclIdInResponse(Network network, NetworkResponse response) {
if (network.getNetworkACLId() == null) {
return;
}
NetworkACL acl = ApiDBUtils.findByNetworkACLId(network.getNetworkACLId());
if (acl == null) {
return;
}
if (!response.getVpcAccess() && acl.getVpcId() != 0) {
logger.debug("[{}] not set in response, since caller does not have access to it.", acl);
return;
}
response.setAclId(acl.getUuid());
response.setAclName(acl.getName());
}
private void showVmInfoForSharedNetworks(boolean forVirtualNetworks, IpAddress ipAddr, IPAddressResponse ipResponse) {
if (!forVirtualNetworks) {
NicVO nic = ApiDBUtils.findByIp4AddressAndNetworkId(ipAddr.getAddress().toString(), ipAddr.getNetworkId());
@ -2804,6 +2823,7 @@ public class ApiResponseHelper implements ResponseGenerator, ResourceIdSupport {
response.setSpecifyIpRanges(network.getSpecifyIpRanges());
setVpcIdInResponse(network.getVpcId(), response::setVpcId, response::setVpcName, response::setVpcAccess);
setAclIdInResponse(network, response);
setResponseAssociatedNetworkInformation(response, network.getId());
@ -2820,14 +2840,6 @@ public class ApiResponseHelper implements ResponseGenerator, ResourceIdSupport {
response.setHasAnnotation(annotationDao.hasAnnotations(network.getUuid(), AnnotationService.EntityType.NETWORK.name(),
_accountMgr.isRootAdmin(CallContext.current().getCallingAccount().getId())));
if (network.getNetworkACLId() != null) {
NetworkACL acl = ApiDBUtils.findByNetworkACLId(network.getNetworkACLId());
if (acl != null) {
response.setAclId(acl.getUuid());
response.setAclName(acl.getName());
}
}
response.setStrechedL2Subnet(network.isStrechedL2Network());
if (network.isStrechedL2Network()) {
Set<String> networkSpannedZones = new HashSet<String>();