X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=rt%2Flib%2FRT%2FObjectCustomFieldValue.pm;h=356a7f390e06d23051d1d923ae42ba51a8659269;hb=31f3763747b82764bb019cfab5b2a2945fc9a99d;hp=98714a0480ad1c556baefc3171a8c8ae735e614e;hpb=a6fe07e49e3fc12169e801b1ed6874c3a5bd8500;p=freeside.git diff --git a/rt/lib/RT/ObjectCustomFieldValue.pm b/rt/lib/RT/ObjectCustomFieldValue.pm index 98714a048..356a7f390 100644 --- a/rt/lib/RT/ObjectCustomFieldValue.pm +++ b/rt/lib/RT/ObjectCustomFieldValue.pm @@ -2,7 +2,7 @@ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2012 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC # # # (Except where explicitly superseded by other copyright notices) @@ -84,38 +84,14 @@ sub Create { @_, ); + my $cf = RT::CustomField->new( $self->CurrentUser ); + $cf->Load( $args{CustomField} ); - my $cf_as_sys = RT::CustomField->new(RT->SystemUser); - $cf_as_sys->Load($args{'CustomField'}); + my ($val, $msg) = $cf->_CanonicalizeValue(\%args); + return ($val, $msg) unless $val; - if($cf_as_sys->Type eq 'IPAddress') { - if ( $args{'Content'} ) { - $args{'Content'} = $self->ParseIP( $args{'Content'} ); - } - - unless ( defined $args{'Content'} ) { - return - wantarray - ? ( 0, $self->loc("Content is an invalid IP address") ) - : 0; - } - } - - if($cf_as_sys->Type eq 'IPAddressRange') { - if ($args{'Content'}) { - ($args{'Content'}, $args{'LargeContent'}) = $self->ParseIPRange( $args{'Content'} ); - } - $args{'ContentType'} = 'text/plain'; - - unless ( defined $args{'Content'} ) { - return - wantarray - ? ( 0, $self->loc("Content is an invalid IP address range") ) - : 0; - } - } - - if ( defined $args{'Content'} && length( Encode::encode_utf8($args{'Content'}) ) > 255 ) { + my $encoded = Encode::encode("UTF-8", $args{'Content'}); + if ( defined $args{'Content'} && length( $encoded ) > 255 ) { if ( defined $args{'LargeContent'} && length $args{'LargeContent'} ) { $RT::Logger->error("Content is longer than 255 bytes and LargeContent specified"); } @@ -164,16 +140,9 @@ sub LoadByCols { if ( $args{CustomField} ) { $cf = RT::CustomField->new( $self->CurrentUser ); $cf->Load( $args{CustomField} ); - if ( $cf->Type && $cf->Type eq 'IPAddressRange' ) { - - my ( $sIP, $eIP ) = $cf->ParseIPRange( $args{'Content'} ); - if ( $sIP && $eIP ) { - $self->SUPER::LoadByCols( %args, - Content => $sIP, - LargeContent => $eIP - ); - } - } + + my ($ok, $msg) = $cf->_CanonicalizeValue(\%args); + return ($ok, $msg) unless $ok; } return $self->SUPER::LoadByCols(%args); }