From 28a9780a3b11b544ee6d854a4847d3e65a9aeb4e Mon Sep 17 00:00:00 2001 From: ivan Date: Fri, 5 Sep 2003 04:09:21 +0000 Subject: [PATCH] users-allow_comp config value to control creation of complimentary accounts and minor pod updates --- FS/FS/Conf.pm | 7 +++++++ FS/FS/cust_main.pm | 15 +++++++++++++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/FS/FS/Conf.pm b/FS/FS/Conf.pm index d185f8d41..86f59c411 100644 --- a/FS/FS/Conf.pm +++ b/FS/FS/Conf.pm @@ -1053,6 +1053,13 @@ httemplate/docs/config.html 'type' => 'text', }, + { + 'key' => 'users-allow_comp', + 'section' => '', + 'description' => 'Usernames which can create complimentary customers, one per line. If no usernames are entered, all users can create complimentary accounts.' + 'type' => 'textarea', + }, + ); 1; diff --git a/FS/FS/cust_main.pm b/FS/FS/cust_main.pm index 2af2e98ce..997f096fc 100644 --- a/FS/FS/cust_main.pm +++ b/FS/FS/cust_main.pm @@ -372,7 +372,7 @@ returns false. This will completely remove all traces of the customer record. This is not what you want when a customer cancels service; for that, cancel all of the -customer's packages (see L). +customer's packages (see L). If the customer has any uncancelled packages, you need to pass a new (valid) customer number for those packages to be transferred to. Cancelled packages @@ -490,6 +490,12 @@ sub replace { local $SIG{TSTP} = 'IGNORE'; local $SIG{PIPE} = 'IGNORE'; + if ( $self->payby eq 'COMP' && $self->payby ne $old->payby + && $conf->config('users-allow_comp') ) { + return "You are not permitted to create complimentary accounts." + unless grep { $_ eq getotaker } $conf->config('users-allow_comp'); + } + my $oldAutoCommit = $FS::UID::AutoCommit; local $FS::UID::AutoCommit = 0; my $dbh = dbh; @@ -603,7 +609,7 @@ sub check { || $self->ut_numbern('referral_custnum') ; #barf. need message catalogs. i18n. etc. - $error .= "Please select a advertising source." + $error .= "Please select an advertising source." if $error =~ /^Illegal or empty \(numeric\) refnum: /; return $error if $error; @@ -746,6 +752,11 @@ sub check { } elsif ( $self->payby eq 'COMP' ) { + if ( !$self->custnum && $conf->config('users-allow_comp') ) { + return "You are not permitted to create complimentary accounts." + unless grep { $_ eq getotaker } $conf->config('users-allow_comp'); + } + $error = $self->ut_textn('payinfo'); return "Illegal comp account issuer: ". $self->payinfo if $error; -- 2.11.0