GUACAMOLE-820: Match IP address filters against IP addresses anywhere in object properties.

This commit is contained in:
Michael Jumper
2020-06-18 14:01:31 -07:00
parent cbe2c5dbf2
commit 85a7a58bd3

View File

@@ -124,10 +124,14 @@ angular.module('list').factory('FilterPattern', ['$injector',
// For each defined getter // For each defined getter
for (var i=0; i < getters.length; i++) { for (var i=0; i < getters.length; i++) {
// Test value against IPv4 network // Test each possible IPv4 address within the string against
var value = IPv4Network.parse(String(getters[i](object))); // the given IPv4 network
if (value && network.contains(value)) var addresses = String(getters[i](object)).split(/[^0-9.]+/);
return true; for (var j=0; j < addresses.length; j++) {
var value = IPv4Network.parse(addresses[j]);
if (value && network.contains(value))
return true;
}
} }
@@ -154,10 +158,14 @@ angular.module('list').factory('FilterPattern', ['$injector',
// For each defined getter // For each defined getter
for (var i=0; i < getters.length; i++) { for (var i=0; i < getters.length; i++) {
// Test value against IPv6 network // Test each possible IPv6 address within the string against
var value = IPv6Network.parse(String(getters[i](object))); // the given IPv6 network
if (value && network.contains(value)) var addresses = String(getters[i](object)).split(/[^0-9A-Fa-f:]+/);
return true; for (var j=0; j < addresses.length; j++) {
var value = IPv6Network.parse(addresses[j]);
if (value && network.contains(value))
return true;
}
} }