@Override public Collection<NetworkPeer> apply(IpPermissionType ipPerm) { final Collection<NetworkPeer> networkPeers = Lists.newArrayList(); for (UserIdGroupPairType peerInfo : ipPerm.getGroups()) { networkPeers.add( new NetworkPeer( peerInfo.getSourceUserId(), peerInfo.getSourceGroupName(), peerInfo.getSourceGroupId())); } return networkPeers; }
/** * Resolve Group Names / Identifiers for the given permissions. * * <p>Caller must have open transaction. * * @param permissions - The permissions to update * @throws MetadataException If an error occurs */ public static void resolvePermissions(final Iterable<IpPermissionType> permissions) throws MetadataException { for (final IpPermissionType ipPermission : permissions) { if (ipPermission.getGroups() != null) for (final UserIdGroupPairType groupInfo : ipPermission.getGroups()) { if (!Strings.isNullOrEmpty(groupInfo.getSourceGroupId())) { final NetworkGroup networkGroup = NetworkGroups.lookupByGroupId(groupInfo.getSourceGroupId()); groupInfo.setSourceUserId(networkGroup.getOwnerAccountNumber()); groupInfo.setSourceGroupName(networkGroup.getDisplayName()); } else if (Strings.isNullOrEmpty(groupInfo.getSourceUserId()) || Strings.isNullOrEmpty(groupInfo.getSourceGroupName())) { throw new MetadataException("Group ID or User ID/Group Name required."); } else { final NetworkGroup networkGroup = NetworkGroups.lookup( AccountFullName.getInstance(groupInfo.getSourceUserId()), groupInfo.getSourceGroupName()); groupInfo.setSourceGroupId(networkGroup.getGroupId()); } } } }