RT# 32234 Change unmask_ss from global conf to group access right
[freeside.git] / FS / FS / Upgrade.pm
index 940ae28..c15f7dd 100644 (file)
@@ -192,6 +192,19 @@ If you need to continue using the old Form 477 report, turn on the
       $lh->maketext($_) if length($_);
     }
   }
+
+  unless ( FS::upgrade_journal->is_done('deprecate_unmask_ss') ) {
+    if ( $conf->config_bool( 'unmask_ss' )) {
+      warn "'unmask_ssn' deprecated from global configuration\n";
+      for my $access_group ( qsearch( access_group => {} )) {
+        $access_group->grant_access_right( 'Unmask customer SSN' );
+        warn " - 'Unmask customer SSN' access right granted to '" .
+             $access_group->groupname . "' employee group\n";
+      }
+    }
+    FS::upgrade_journal->set_done('deprecate_unmask_ss');
+  }
+
 }
 
 sub upgrade_overlimit_groups {
@@ -338,7 +351,10 @@ sub upgrade {
       });
       foreach my $object ( @objects ) {
           my $payinfo = $object->decrypt($object->payinfo);
-          die "error decrypting payinfo" if $payinfo eq $object->payinfo;
+          if ( $payinfo eq $object->payinfo ) {
+            warn "error decrypting payinfo for $table: $payinfo\n";
+            next;
+          }
           $object->payinfo($payinfo);
           my $error = $object->replace;
           die $error if $error;
@@ -362,7 +378,12 @@ sub upgrade_data {
     #fix whitespace - before cust_main
     'cust_location' => [],
 
-    #cust_main (remove paycvv from history, locations, cust_payby, etc)
+    # need before cust_main tokenization upgrade,
+    # blocks tokenization upgrade if deprecated features still in use
+    'agent_payment_gateway' => [],
+
+    #cust_main (tokenizes cards, remove paycvv from history, locations, cust_payby, etc)
+    # (handles payinfo encryption/tokenization across all relevant tables)
     'cust_main' => [],
 
     #contact -> cust_contact / prospect_contact
@@ -390,10 +411,6 @@ sub upgrade_data {
     #duplicate history records
     'h_cust_svc'  => [],
 
-    # need before transaction tables, 
-    # blocks tokenization upgrade if deprecated features still in use
-    'agent_payment_gateway' => [],
-
     #populate cust_pay.otaker
     'cust_pay'    => [],
 
@@ -496,6 +513,27 @@ sub upgrade_data {
     #mark certain taxes as system-maintained,
     # and fix whitespace
     'cust_main_county' => [],
+
+    #'compliance solutions' -> 'compliance_solutions'
+    'tax_rate' => [],
+    'tax_rate_location' => [],
+
+    #upgrade part_event_condition_option agentnum to a multiple hash value
+    'part_event_condition_option' =>[],
+
+    #fix ip format
+    'svc_circuit' => [],
+
+    #fix ip format
+    'svc_hardware' => [],
+
+    #fix ip format
+    'svc_pbx' => [],
+
+    #fix ip format
+    'tower_sector' => [],
+
+
   ;
 
   \%hash;
@@ -552,15 +590,31 @@ sub upgrade_schema {
 sub upgrade_schema_data {
   my %opt = @_;
 
+  #auto-find tables/classes with an _update_schema method?
+
   tie my %hash, 'Tie::IxHash', 
 
     #fix classnum character(1)
     'cust_bill_pkg_detail' => [],
     #add necessary columns to RT schema
     'TicketSystem' => [],
+    #remove h_access_user_log if it exists (since our regular auto schema
+    # upgrade doesn't have the drop tables flag turned on) 
+    'access_user_log' => [],
     #remove possible dangling records
     'password_history' => [],
     'cust_pay_pending' => [],
+    #remove records referencing removed things with their FKs
+    'pkg_referral' => [],
+    'cust_bill_pkg_discount' => [],
+    'cust_msg' => [],
+    'cust_bill_pay_batch' => [],
+    'cust_event_fee' => [],
+    'radius_attr' => [],
+    'queue_depend' => [],
+    'cust_main_invoice' => [],
+    #update records referencing removed things with their FKs
+    'cust_pkg' => [],
   ;
 
   \%hash;
@@ -690,4 +744,3 @@ Sure.
 =cut
 
 1;
-