check old password if supplied, RT#13656
[freeside.git] / FS / FS / ClientAPI / MyAccount.pm
index 7e131f9..9533d6a 100644 (file)
@@ -387,8 +387,8 @@ sub customer_info {
                       ( $session->{'pkgnum'} ? 1 : 0 ), #nobalance
                     );
 
-    $return{name} = $cust_main->name;
-    $return{ship_name} = $cust_main->ship_name;
+    $return{name} = $cust_main->first. ' '. $cust_main->get('last');
+    $return{ship_name} = $cust_main->ship_first. ' '. $cust_main->get('ship_last');
 
     for (@cust_main_editable_fields) {
       $return{$_} = $cust_main->get($_);
@@ -433,6 +433,7 @@ sub customer_info {
     if ( $session->{'svcnum'} ) {
       my $cust_svc = qsearchs('cust_svc', { 'svcnum' => $session->{'svcnum'} });
       $return{'svc_label'} = ($cust_svc->label)[1] if $cust_svc;
+      $return{'svcnum'} = $session->{'svcnum'};
     }
 
   } elsif ( $session->{'svcnum'} ) { #no customer record
@@ -477,8 +478,8 @@ sub customer_info_short {
                       1, ##nobalance
                     );
 
-    $return{name} = $cust_main->name;
-    $return{ship_name} = $cust_main->ship_name;
+    $return{name} = $cust_main->first. ' '. $cust_main->get('last');
+    $return{ship_name} = $cust_main->ship_first. ' '. $cust_main->get('ship_last');
 
     $return{payby} = $cust_main->payby;
 
@@ -500,6 +501,7 @@ sub customer_info_short {
     if ( $session->{'svcnum'} ) {
       my $cust_svc = qsearchs('cust_svc', { 'svcnum' => $session->{'svcnum'} });
       $return{'svc_label'} = ($cust_svc->label)[1] if $cust_svc;
+      $return{'svcnum'} = $session->{'svcnum'};
     }
 
   } elsif ( $session->{'svcnum'} ) { #no customer record
@@ -2146,6 +2148,11 @@ sub myaccount_passwd {
   } )
     or return { 'error' => "Service not found" };
 
+  if ( exists($p->{'old_password'}) ) {
+    return { 'error' => "Incorrect password." };
+      unless $svc_acct->check_password($p->{'old_password'});
+  }
+
   $svc_acct->_password($p->{'new_password'});
   my $error = $svc_acct->replace();