From e52dadda109a1ba6e4dc62094596ab0cd059a39d Mon Sep 17 00:00:00 2001 From: Rene Krenn Date: Thu, 12 Oct 2017 10:41:23 +0200 Subject: [PATCH] TT#23277 change lnp number type from enum to string + also prevent whitespace chars Change-Id: Ib91f983c458066e7638f2360d7664b97b3c2e294 --- lib/NGCP/Panel/Form/Lnp/Number.pm | 19 ++++++++++++------- lib/NGCP/Panel/Utils/Lnp.pm | 5 ++++- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/lib/NGCP/Panel/Form/Lnp/Number.pm b/lib/NGCP/Panel/Form/Lnp/Number.pm index 48a90d23bf..a162cab100 100644 --- a/lib/NGCP/Panel/Form/Lnp/Number.pm +++ b/lib/NGCP/Panel/Form/Lnp/Number.pm @@ -41,18 +41,14 @@ has_field 'routing_number' => ( ); has_field 'type' => ( - type => 'Select', + type => 'Text', required => 0, - label => 'Type', - options => [ - { label => '', value => '' }, - { label => 'fixed', value => 'fixed' }, - { label => 'mobile', value => 'mobile' }, - ], + maxlength => 31, element_attr => { rel => ['tooltip'], title => ['The optional LNP number type tag, for CDR exports.'] }, + validate_method => \&_validate_type, ); has_field 'start' => ( @@ -101,5 +97,14 @@ sub validate_number { return; } +sub _validate_type { + my ( $self, $field ) = @_; + + if ($field->input =~ /[^a-z0-9_-]/i) { + $field->add_error($field->label . " must be alphanumeric"); + } + return; +} + 1; # vim: set tabstop=4 expandtab: diff --git a/lib/NGCP/Panel/Utils/Lnp.pm b/lib/NGCP/Panel/Utils/Lnp.pm index 4adbc47926..b9a1e70ace 100644 --- a/lib/NGCP/Panel/Utils/Lnp.pm +++ b/lib/NGCP/Panel/Utils/Lnp.pm @@ -132,7 +132,10 @@ sub upload_csv { if($row->{end} && $row->{end} =~ /^\d{4}-\d{2}-\d{2}$/) { $row->{end} .= 'T23:59:59'; } - $row->{type} ||= undef; + if (defined $row->{type} and (length($row->{type}) > 31 or $row->{type} =~ /[^a-z0-9_-]/i)) { + push @fails, $linenum; + next; + } push @numbers, [$carriers{$k}, $row->{number}, $row->{routing_number}, $row->{start}, $row->{end}, $row->{type}]; if($linenum % $chunk_size == 0) {