mirror of
				https://github.com/gyurix1968/guacamole-client.git
				synced 2025-10-31 00:53:21 +00:00 
			
		
		
		
	GUAC-1138: Add support for IPv4 and IPv6 network tokens.
This commit is contained in:
		| @@ -23,8 +23,12 @@ | ||||
| /** | ||||
|  * A service for defining the FilterToken class. | ||||
|  */ | ||||
| angular.module('list').factory('FilterToken', [ | ||||
|     function defineFilterToken() { | ||||
| angular.module('list').factory('FilterToken', ['$injector', | ||||
|     function defineFilterToken($injector) { | ||||
|  | ||||
|     // Required types | ||||
|     var IPv4Network = $injector.get('IPv4Network'); | ||||
|     var IPv6Network = $injector.get('IPv6Network'); | ||||
|  | ||||
|     /** | ||||
|      * An arbitrary token having an associated type and value. | ||||
| @@ -76,6 +80,50 @@ angular.module('list').factory('FilterToken', [ | ||||
|      */ | ||||
|     FilterToken.Types = { | ||||
|  | ||||
|         /** | ||||
|          * An IPv4 address or subnet. The value of an IPV4_NETWORK token is an | ||||
|          * IPv4Network. | ||||
|          */ | ||||
|         IPV4_NETWORK: function parseIPv4(str) { | ||||
|  | ||||
|             var pattern = /^\S+/; | ||||
|  | ||||
|             // Read first word via regex | ||||
|             var matches = pattern.exec(str); | ||||
|             if (!matches) | ||||
|                 return null; | ||||
|  | ||||
|             // Validate and parse as IPv4 address | ||||
|             var network = IPv4Network.parse(matches[0]); | ||||
|             if (!network) | ||||
|                 return null; | ||||
|  | ||||
|             return new FilterToken(matches[0], 'IPV4_NETWORK', network); | ||||
|  | ||||
|         }, | ||||
|  | ||||
|         /** | ||||
|          * An IPv6 address or subnet. The value of an IPV6_NETWORK token is an | ||||
|          * IPv6Network. | ||||
|          */ | ||||
|         IPV6_NETWORK: function parseIPv6(str) { | ||||
|  | ||||
|             var pattern = /^\S+/; | ||||
|  | ||||
|             // Read first word via regex | ||||
|             var matches = pattern.exec(str); | ||||
|             if (!matches) | ||||
|                 return null; | ||||
|  | ||||
|             // Validate and parse as IPv6 address | ||||
|             var network = IPv6Network.parse(matches[0]); | ||||
|             if (!network) | ||||
|                 return null; | ||||
|  | ||||
|             return new FilterToken(matches[0], 'IPV6_NETWORK', network); | ||||
|  | ||||
|         }, | ||||
|  | ||||
|         /** | ||||
|          * A string literal, which may be quoted. The value of a LITERAL token | ||||
|          * is a String. | ||||
|   | ||||
		Reference in New Issue
	
	Block a user