summaryrefslogtreecommitdiff
path: root/FS/FS/Setup.pm
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2015-02-24 20:53:53 -0800
committerIvan Kohler <ivan@freeside.biz>2015-02-24 20:53:53 -0800
commitc901bfbd9114865ce0c6fd76c6378e534c3616d5 (patch)
tree7245d73bde51aaf380f6b3a27ec7909b4e54f2f0 /FS/FS/Setup.pm
parent59fe7dfd7fa6d31c30f3458af05510041ba529e0 (diff)
banned card hashing rewrite, RT#32290, RT#23741
Diffstat (limited to 'FS/FS/Setup.pm')
-rw-r--r--FS/FS/Setup.pm23
1 files changed, 22 insertions, 1 deletions
diff --git a/FS/FS/Setup.pm b/FS/FS/Setup.pm
index f26e50e..0c3226a 100644
--- a/FS/FS/Setup.pm
+++ b/FS/FS/Setup.pm
@@ -27,7 +27,7 @@ use FS::access_groupagent;
use FS::Record qw(qsearch);
use FS::msgcat;
-@EXPORT_OK = qw( create_initial_data enable_encryption );
+@EXPORT_OK = qw( create_initial_data enable_encryption enable_banned_pay_pad );
=head1 NAME
@@ -71,6 +71,8 @@ sub create_initial_data {
populate_numbering();
enable_encryption();
+
+ enable_banned_pay_pad();
if ( $oldAutoCommit ) {
dbh->commit or die dbh->errstr;
@@ -99,6 +101,25 @@ sub enable_encryption {
}
+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