summaryrefslogtreecommitdiff
path: root/FS/FS
diff options
context:
space:
mode:
authorivan <ivan>2010-01-26 08:35:43 +0000
committerivan <ivan>2010-01-26 08:35:43 +0000
commit046395d0a66db2f057c80768e01ae0f5b06bc555 (patch)
tree2a632b6ac08141ccb9f3552ea026e592784df947 /FS/FS
parenta175f7b143b3a8634fa54c9ce3e4a3530dd360e3 (diff)
svc_pbx.title uniqueness (kludgy) and force to alphanumeric+space and 19 char max when using thirdlane (conservative guess for 1st pass implementation), RT#7051
Diffstat (limited to 'FS/FS')
-rw-r--r--FS/FS/part_export/thirdlane.pm6
-rw-r--r--FS/FS/svc_pbx.pm17
2 files changed, 22 insertions, 1 deletions
diff --git a/FS/FS/part_export/thirdlane.pm b/FS/FS/part_export/thirdlane.pm
index cbcf98a..196177e 100644
--- a/FS/FS/part_export/thirdlane.pm
+++ b/FS/FS/part_export/thirdlane.pm
@@ -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,
diff --git a/FS/FS/svc_pbx.pm b/FS/FS/svc_pbx.pm
index 8263bdf..37c7bb7 100644
--- a/FS/FS/svc_pbx.pm
+++ b/FS/FS/svc_pbx.pm
@@ -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