package FS::Setup;
+use base qw( Exporter );
use strict;
-use vars qw( @ISA @EXPORT_OK );
-use Exporter;
+use vars qw( @EXPORT_OK );
#use Tie::DxHash;
use Tie::IxHash;
use Crypt::OpenSSL::RSA;
use FS::UID qw( dbh driver_name );
-use FS::Record;
+#use FS::Record;
use FS::svc_domain;
$FS::svc_domain::whois_hack = 1;
$FS::svc_domain::whois_hack = 1;
-@ISA = qw( Exporter );
-@EXPORT_OK = qw( create_initial_data enable_encryption );
+#populate_locales
+use Locale::Country;
+use Locale::SubCountry 1.42;
+use FS::cust_main_county;
+
+#populate_access
+use FS::AccessRight;
+use FS::access_right;
+use FS::access_groupagent;
+
+#populate_msgcat
+use FS::Record qw(qsearch);
+use FS::msgcat;
+
+@EXPORT_OK = qw( create_initial_data enable_encryption enable_banned_pay_pad );
=head1 NAME
populate_numbering();
enable_encryption();
+
+ enable_banned_pay_pad();
if ( $oldAutoCommit ) {
dbh->commit or die dbh->errstr;
}
+sub enable_banned_pay_pad {
+
+ eval "use FS::Conf";
+ die $@ if $@;
+
+ my $conf = new FS::Conf;
+
+ die "banned_pay-pad already in place"
+ if length( $conf->config('banned_pay-pad') );
+
+ #arbitrary but good enough... all we need is *some* per-site random padding
+ my @pw_set = ( 'a'..'z', 'A'..'Z', '0'..'9', '(', ')', '#', '.', ',' );
+
+ $conf->set('banned_pay-pad',
+ join('', map($pw_set[ int(rand($#pw_set)) ], (0..15) ) )
+ );
+
+}
+
sub populate_numbering {
eval "use FS::lata_Data;"; # this automatically populates the lata table, if unpopulated
eval "use FS::msa_Data;"; # this automatically populates the msa table, if unpopulated
sub populate_locales {
- use Locale::Country;
- use FS::cust_main_county;
-
#cust_main_county
foreach my $country ( sort map uc($_), all_country_codes ) {
_add_country($country);
sub _add_country {
- use Locale::SubCountry 1.42;
-
my( $country ) = shift;
my $subcountry = eval { new Locale::SubCountry($country) };
sub initial_data {
my %opt = @_;
+ my $cust_location = FS::cust_location->new({
+ 'address1' => '1234 System Lane',
+ 'city' => 'Systemtown',
+ 'state' => 'CA',
+ 'zip' => '54321',
+ 'country' => 'US',
+ });
+
#tie my %hash, 'Tie::DxHash',
tie my %hash, 'Tie::IxHash',
#with billing type Complimentary. Leave the First package dropdown set to
#(none).
'cust_main' => [
- { 'agentnum' => 1, #XXX
- 'refnum' => 1, #XXX
- 'first' => 'System',
- 'last' => 'Accounts',
- 'address1' => '1234 System Lane',
- 'city' => 'Systemtown',
- 'state' => 'CA',
- 'zip' => '54321',
- 'country' => 'US',
- 'payby' => 'COMP',
- 'payinfo' => 'system', #or something
- 'paydate' => '1/2037',
+ { 'agentnum' => 1, #XXX
+ 'refnum' => 1, #XXX
+ 'first' => 'System',
+ 'last' => 'Accounts',
+ 'complimentary' => 'Y',
+ 'bill_location' => $cust_location,
+ 'ship_location' => $cust_location,
},
],
#phone types
'phone_type' => [],
+ #message templates
+ 'msg_template' => [],
+
;
\%hash;
sub populate_access {
- use FS::AccessRight;
- use FS::access_right;
-
foreach my $rightname ( FS::AccessRight->default_superuser_rights ) {
my $access_right = new FS::access_right {
'righttype' => 'FS::access_group',
sub populate_msgcat {
- use FS::Record qw(qsearch);
- use FS::msgcat;
-
foreach my $del_msgcat ( qsearch('msgcat', {}) ) {
my $error = $del_msgcat->delete;
die $error if $error;