From 046395d0a66db2f057c80768e01ae0f5b06bc555 Mon Sep 17 00:00:00 2001 From: ivan Date: Tue, 26 Jan 2010 08:35:43 +0000 Subject: [PATCH] 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 --- FS/FS/part_export/thirdlane.pm | 6 ++++++ FS/FS/svc_pbx.pm | 17 ++++++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/FS/FS/part_export/thirdlane.pm b/FS/FS/part_export/thirdlane.pm index cbcf98a26..196177ea3 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 8263bdf3c..37c7bb719 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 -- 2.11.0