|
23 | 23 | import javax.ejb.Local; |
24 | 24 | import javax.inject.Inject; |
25 | 25 |
|
| 26 | +import com.cloud.network.vpc.dao.VpcDao; |
| 27 | +import org.apache.cloudstack.api.command.user.network.ListNetworkACLListsCmd; |
26 | 28 | import org.apache.commons.lang.StringUtils; |
27 | 29 | import org.apache.log4j.Logger; |
28 | 30 | import org.springframework.stereotype.Component; |
29 | 31 |
|
30 | 32 | import org.apache.cloudstack.api.ApiErrorCode; |
31 | 33 | import org.apache.cloudstack.api.ServerApiException; |
32 | 34 | import org.apache.cloudstack.api.command.user.network.CreateNetworkACLCmd; |
33 | | -import org.apache.cloudstack.api.command.user.network.ListNetworkACLListsCmd; |
34 | 35 | import org.apache.cloudstack.api.command.user.network.ListNetworkACLsCmd; |
35 | 36 | import org.apache.cloudstack.context.CallContext; |
36 | 37 |
|
|
42 | 43 | import com.cloud.network.dao.NetworkDao; |
43 | 44 | import com.cloud.network.dao.NetworkVO; |
44 | 45 | import com.cloud.network.vpc.dao.NetworkACLDao; |
45 | | -import com.cloud.network.vpc.dao.VpcDao; |
46 | 46 | import com.cloud.network.vpc.dao.VpcGatewayDao; |
47 | 47 | import com.cloud.projects.Project.ListProjectResourcesCriteria; |
48 | 48 | import com.cloud.server.ResourceTag.ResourceObjectType; |
@@ -579,8 +579,16 @@ public Pair<List<? extends NetworkACLItem>, Integer> listNetworkACLItems(ListNet |
579 | 579 | @Override |
580 | 580 | public boolean revokeNetworkACLItem(long ruleId) { |
581 | 581 | NetworkACLItemVO aclItem = _networkACLItemDao.findById(ruleId); |
582 | | - if (aclItem != null) { |
583 | | - if ((aclItem.getAclId() == NetworkACL.DEFAULT_ALLOW) || (aclItem.getAclId() == NetworkACL.DEFAULT_DENY)) { |
| 582 | + if(aclItem != null){ |
| 583 | + NetworkACL acl = _networkAclMgr.getNetworkACL(aclItem.getAclId()); |
| 584 | + |
| 585 | + Vpc vpc = _entityMgr.findById(Vpc.class, acl.getVpcId()); |
| 586 | + |
| 587 | + Account caller = CallContext.current().getCallingAccount(); |
| 588 | + |
| 589 | + _accountMgr.checkAccess(caller, null, true, vpc); |
| 590 | + |
| 591 | + if((aclItem.getAclId() == NetworkACL.DEFAULT_ALLOW) || (aclItem.getAclId() == NetworkACL.DEFAULT_DENY)){ |
584 | 592 | throw new InvalidParameterValueException("ACL Items in default ACL cannot be deleted"); |
585 | 593 | } |
586 | 594 | } |
|
0 commit comments