diff options
author | Ivan Kohler <ivan@freeside.biz> | 2015-02-24 20:53:53 -0800 |
---|---|---|
committer | Ivan Kohler <ivan@freeside.biz> | 2015-02-24 20:53:53 -0800 |
commit | c901bfbd9114865ce0c6fd76c6378e534c3616d5 (patch) | |
tree | 7245d73bde51aaf380f6b3a27ec7909b4e54f2f0 /FS/FS/Setup.pm | |
parent | 59fe7dfd7fa6d31c30f3458af05510041ba529e0 (diff) |
banned card hashing rewrite, RT#32290, RT#23741
Diffstat (limited to 'FS/FS/Setup.pm')
-rw-r--r-- | FS/FS/Setup.pm | 23 |
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 |