summaryrefslogtreecommitdiff
path: root/rt/share/html/Elements/ValidateCustomFields
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2012-07-02 14:24:21 -0700
committerIvan Kohler <ivan@freeside.biz>2012-07-02 14:24:21 -0700
commit85e677b86fc37c54e6de2b06340351a28f5a5916 (patch)
tree11148e2c292bd1a43b7cf6c2f5212a6ca8b03e75 /rt/share/html/Elements/ValidateCustomFields
parente5ab051ccdb7637d8dd2f0ed9b4fe9aaaf1d1100 (diff)
parent92aedddd3684167abb60cd3f1d77bbc156c592e6 (diff)
Merge branch 'master' of git.freeside.biz:/home/git/freeside
Diffstat (limited to 'rt/share/html/Elements/ValidateCustomFields')
-rw-r--r--rt/share/html/Elements/ValidateCustomFields29
1 files changed, 27 insertions, 2 deletions
diff --git a/rt/share/html/Elements/ValidateCustomFields b/rt/share/html/Elements/ValidateCustomFields
index 539c6f483..922b885f2 100644
--- a/rt/share/html/Elements/ValidateCustomFields
+++ b/rt/share/html/Elements/ValidateCustomFields
@@ -2,7 +2,7 @@
%#
%# COPYRIGHT:
%#
-%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2012 Best Practical Solutions, LLC
%# <sales@bestpractical.com>
%#
%# (Except where explicitly superseded by other copyright notices)
@@ -81,7 +81,32 @@ while ( my $CF = $CustomFields->Next ) {
grep defined, @values;
@values = ('') unless @values;
- foreach my $value( @values ) {
+ for my $value( @values ) {
+ if ($value) {
+ if ( $CF->Type eq 'IPAddress' ) {
+ use Regexp::Common qw(RE_net_IPv4);
+ my $ip = RT::ObjectCustomFieldValue->ParseIP( $value );
+ unless ( $ip ) {
+ my $msg =
+ loc( "Input can not be parsed as an IP address" );
+ $m->notes( ( 'InvalidField-' . $CF->Id ) => $msg );
+ push @res, $msg;
+ $valid = 0;
+ }
+ }
+ elsif ( $CF->Type eq 'IPAddressRange' ) {
+ my ( $start_ip, $end_ip ) =
+ RT::ObjectCustomFieldValue->ParseIPRange($value);
+ unless ( $start_ip && $end_ip ) {
+ my $msg =
+ loc( "Input can not be parsed as an IP address range" );
+ $m->notes( ( 'InvalidField-' . $CF->Id ) => $msg );
+ push @res, $msg;
+ $valid = 0;
+ }
+ }
+ }
+
next if $CF->MatchPattern($value);
my $msg = loc("Input must match [_1]", $CF->FriendlyPattern);