X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2FSetup.pm;h=e1d890aaa05f554a916a57009250565bcdbf5ee9;hp=edfe912ea2a34a67ebfc2c18582aaa28f99b4a8e;hb=aed8ec35ccb9cdeb7ea0cb6ff2946f9d83d582f6;hpb=3a02e398ce013116c6ee97fc18472a6f40e0798d diff --git a/FS/FS/Setup.pm b/FS/FS/Setup.pm index edfe912ea..e1d890aaa 100644 --- a/FS/FS/Setup.pm +++ b/FS/FS/Setup.pm @@ -5,6 +5,7 @@ use vars qw( @ISA @EXPORT_OK ); use Exporter; #use Tie::DxHash; use Tie::IxHash; +use Crypt::OpenSSL::RSA; use FS::UID qw( dbh driver_name ); use FS::Record; @@ -13,7 +14,7 @@ $FS::svc_domain::whois_hack = 1; $FS::svc_domain::whois_hack = 1; @ISA = qw( Exporter ); -@EXPORT_OK = qw( create_initial_data ); +@EXPORT_OK = qw( create_initial_data enable_encryption ); =head1 NAME @@ -53,13 +54,41 @@ sub create_initial_data { populate_access(); populate_msgcat(); - + + populate_numbering(); + if ( $oldAutoCommit ) { dbh->commit or die dbh->errstr; } } +sub enable_encryption { + + eval "use FS::Conf"; + die $@ if $@; + + my $conf = new FS::Conf; + + die "encryption key(s) already in place" + if $conf->exists('encryptionpublickey') + || $conf->exists('encryptionprivatekey'); + + my $length = 2048; + my $rsa = Crypt::OpenSSL::RSA->generate_key($length); + + $conf->set('encryption', 1); + $conf->set('encryptionmodule', 'Crypt::OpenSSL::RSA'); + $conf->set('encryptionpublickey', $rsa->get_public_key_string ); + $conf->set('encryptionprivatekey', $rsa->get_private_key_string ); + +} + +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; @@ -96,7 +125,7 @@ sub populate_addl_locales { sub _add_country { - use Locale::SubCountry; + use Locale::SubCountry 1.42; my( $country ) = shift; @@ -153,7 +182,7 @@ sub populate_initial_data { die $@ if $@; $class->_populate_initial_data(%opt) - if $class->can('_populate_inital_data'); + if $class->can('_populate_initial_data'); my @records = @{ $data->{$table} }; @@ -181,6 +210,16 @@ sub initial_data { #tie my %hash, 'Tie::DxHash', tie my %hash, 'Tie::IxHash', + #bootstrap user + 'access_user' => [ + { 'username' => 'fs_bootstrap', + '_password' => 'changeme', #will trigger warning if you try to enable + 'last' => 'User', + 'first' => 'Bootstrap', + 'disabled' => 'Y', + }, + ], + #superuser group 'access_group' => [ { 'groupname' => 'Superuser' }, @@ -348,11 +387,12 @@ sub initial_data { #not yet.... - #) - #usage classes 'usage_class' => [], + #phone types + 'phone_type' => [], + ; \%hash; @@ -395,7 +435,7 @@ sub populate_msgcat { die $error if $error; } - my %messages = msgcat_messages(); + my %messages = FS::msgcat::_legacy_messages(); foreach my $msgcode ( keys %messages ) { foreach my $locale ( keys %{$messages{$msgcode}} ) { @@ -411,122 +451,6 @@ sub populate_msgcat { } -sub msgcat_messages { - - # 'msgcode' => { - # 'en_US' => 'Message', - # }, - - ( - - 'passwords_dont_match' => { - 'en_US' => "Passwords don't match", - }, - - 'invalid_card' => { - 'en_US' => 'Invalid credit card number', - }, - - 'unknown_card_type' => { - 'en_US' => 'Unknown card type', - }, - - 'not_a' => { - 'en_US' => 'Not a ', - }, - - 'empty_password' => { - 'en_US' => 'Empty password', - }, - - 'no_access_number_selected' => { - 'en_US' => 'No access number selected', - }, - - 'illegal_text' => { - 'en_US' => 'Illegal (text)', - #'en_US' => 'Only letters, numbers, spaces, and the following punctuation symbols are permitted: ! @ # $ % & ( ) - + ; : \' " , . ? / in field', - }, - - 'illegal_or_empty_text' => { - 'en_US' => 'Illegal or empty (text)', - #'en_US' => 'Only letters, numbers, spaces, and the following punctuation symbols are permitted: ! @ # $ % & ( ) - + ; : \' " , . ? / in required field', - }, - - 'illegal_username' => { - 'en_US' => 'Illegal username', - }, - - 'illegal_password' => { - 'en_US' => 'Illegal password (', - }, - - 'illegal_password_characters' => { - 'en_US' => ' characters)', - }, - - 'username_in_use' => { - 'en_US' => 'Username in use', - }, - - 'phonenum_in_use' => { - 'en_US' => 'Phone number in use', - }, - - 'illegal_email_invoice_address' => { - 'en_US' => 'Illegal email invoice address', - }, - - 'illegal_name' => { - 'en_US' => 'Illegal (name)', - #'en_US' => 'Only letters, numbers, spaces and the following punctuation symbols are permitted: , . - \' in field', - }, - - 'illegal_phone' => { - 'en_US' => 'Illegal (phone)', - #'en_US' => '', - }, - - 'illegal_zip' => { - 'en_US' => 'Illegal (zip)', - #'en_US' => '', - }, - - 'expired_card' => { - 'en_US' => 'Expired card', - }, - - 'daytime' => { - 'en_US' => 'Day Phone', - }, - - 'night' => { - 'en_US' => 'Night Phone', - }, - - 'svc_external-id' => { - 'en_US' => 'External ID', - }, - - 'svc_external-title' => { - 'en_US' => 'Title', - }, - - 'stateid' => { - 'en_US' => 'Driver\'s License', - }, - - 'stateid_state' => { - 'en_US' => 'Driver\'s License State', - }, - - 'invalid_domain' => { - 'en_US' => 'Invalid domain', - }, - - ); -} - =back =head1 BUGS