svc_pbx.title uniqueness (kludgy) and force to alphanumeric+space and 19 char max...
authorivan <ivan>
Tue, 26 Jan 2010 08:35:43 +0000 (08:35 +0000)
committerivan <ivan>
Tue, 26 Jan 2010 08:35:43 +0000 (08:35 +0000)
FS/FS/part_export/thirdlane.pm
FS/FS/svc_pbx.pm

index cbcf98a..196177e 100644 (file)
@@ -41,6 +41,12 @@ sub _export_insert {
 
   if ( $svc_x->isa('FS::svc_pbx') ) {
 
+    return 'Name must be 19 characters or less (thirdlane restriction?)'
+      if length($svc_x->title) > 19;
+
+    return 'Name must consist of alphanumerics and spaces only (thirdlane restriction?)'
+      unless $svc_x->title =~ /^[\w\s]+$/;
+
     my $tenant = {
       'tenant'   => $svc_x->title,
       'maxusers' => $svc_x->max_extensions,
index 8263bdf..37c7bb7 100644 (file)
@@ -2,7 +2,7 @@ package FS::svc_pbx;
 
 use strict;
 use base qw( FS::svc_External_Common );
-#use FS::Record qw( qsearch qsearchs );
+use FS::Record qw( qsearchs ); # qsearch );
 use FS::cust_svc;
 
 =head1 NAME
@@ -214,6 +214,21 @@ sub check {
   $self->SUPER::check;
 }
 
+#XXX this is a way-too simplistic implementation
+# at the very least, title should be unique across exports that need that or
+# controlled by a conf setting or something
+sub _check_duplicate {
+  my $self = shift;
+
+  $self->lock_table;
+
+  if ( qsearchs( 'svc_pbx', { 'title' => $self->title } ) ) {
+    return "Name in use";
+  } else {
+    return '';
+  }
+}
+
 =back
 
 =head1 BUGS