[freeside-commits] freeside/FS/FS Conf.pm, 1.217, 1.218 payinfo_Mixin.pm, 1.5, 1.6
Ivan,,,
ivan at wavetail.420.am
Sat Mar 1 15:30:46 PST 2008
Update of /home/cvs/cvsroot/freeside/FS/FS
In directory wavetail.420.am:/tmp/cvs-serv6285
Modified Files:
Conf.pm payinfo_Mixin.pm
Log Message:
added a config value to control the extent of credit card masking, but since cust_main.paymask is in the db, need something to update it for all existing customers too
Index: Conf.pm
===================================================================
RCS file: /home/cvs/cvsroot/freeside/FS/FS/Conf.pm,v
retrieving revision 1.217
retrieving revision 1.218
diff -u -d -r1.217 -r1.218
--- Conf.pm 29 Feb 2008 17:57:36 -0000 1.217
+++ Conf.pm 1 Mar 2008 23:30:44 -0000 1.218
@@ -2184,6 +2184,23 @@
],
},
+ {
+ 'key' => 'card_masking_method',
+ 'section' => 'UI',
+ 'description' => 'Digits to display when masking credit cards. Note that the first six digits are necessary to canonically identify the credit card type (Visa/MC, Amex, Discover, Maestro, etc.) in all cases. The first four digits can identify the most common credit card types in most cases (Visa/MC, Amex, and Discover). The first two digits can distinguish between Visa/MC and Amex.',
+ 'type' => 'select',
+ 'select_hash' => [
+ '' => '123456xxxxxx1234',
+ 'first6last2' => '123456xxxxxxxx12',
+ 'first4last4' => '1234xxxxxxxx1234',
+ 'first4last2' => '1234xxxxxxxxxx12',
+ 'first2last4' => '12xxxxxxxxxx1234',
+ 'first2last2' => '12xxxxxxxxxxxx12',
+ 'first0last4' => 'xxxxxxxxxxxx1234',
+ 'first0last2' => 'xxxxxxxxxxxxxx12',
+ ],
+ },
+
);
1;
Index: payinfo_Mixin.pm
===================================================================
RCS file: /home/cvs/cvsroot/freeside/FS/FS/payinfo_Mixin.pm,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- payinfo_Mixin.pm 10 Jan 2007 08:56:07 -0000 1.5
+++ payinfo_Mixin.pm 1 Mar 2008 23:30:44 -0000 1.6
@@ -160,10 +160,16 @@
} else {
# if not, mask it...
if ($payby eq 'CARD' || $payby eq 'DCRD' || $payby eq 'MCRD') {
- # Credit Cards (Show first and last four)
- $paymask = substr($payinfo,0,6).
- 'x'x(length($payinfo)-10).
- substr($payinfo,(length($payinfo)-4));
+ # Credit Cards
+ my $conf = new FS::Conf;
+ my $mask_method = $conf->config('card_masking_method') || 'first6last4';
+ $mask_method =~ /^first(\d+)last(\d+)$/
+ or die "can't parse card_masking_method $mask_method";
+ my($first, $last) = ($1, $2);
+
+ $paymask = substr($payinfo,0,$first).
+ 'x'x(length($payinfo)-$first-$last).
+ substr($payinfo,(length($payinfo)-$last));
} elsif ($payby eq 'CHEK' || $payby eq 'DCHK' ) {
# Checks (Show last 2 @ bank)
my( $account, $aba ) = split('@', $payinfo );
More information about the freeside-commits
mailing list