[freeside-commits] branch master updated. 54a78752a0fc9a82c82dacd111289e886cca6532

Mark Wells mark at 420.am
Fri May 31 14:59:31 PDT 2013


The branch, master has been updated
       via  54a78752a0fc9a82c82dacd111289e886cca6532 (commit)
      from  21f645c3a9b932873f3a5eaddebe4171cd76ba9e (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 54a78752a0fc9a82c82dacd111289e886cca6532
Author: Mark Wells <mark at freeside.biz>
Date:   Fri May 31 14:58:10 2013 -0700

    allow broadband_nas services to be reexported, #23147

diff --git a/FS/FS/part_export/broadband_nas.pm b/FS/FS/part_export/broadband_nas.pm
index 5a8ffac..8c152be 100644
--- a/FS/FS/part_export/broadband_nas.pm
+++ b/FS/FS/part_export/broadband_nas.pm
@@ -50,6 +50,11 @@ FS::UID->install_callback(
 address and description of the broadband service.  This can be used 
 with 'sqlradius' or 'broadband_sqlradius' exports to maintain entries
 in the client table on a RADIUS server.</p>
+<p>The checkboxes at the bottom of this page correspond to RADIUS server
+databases that Freeside knows about (i.e. 'sqlradius' or 'broadband_sqlradius'
+exports that you have configured).  Check the box for each server that you 
+want the NAS entries to be exported to.  Do not create multiple broadband_nas
+exports for the same service definition; this will fail.</p>
 <p>Most broadband configurations should not use this, even if they use 
 RADIUS for access control.</p>
 END
@@ -67,19 +72,33 @@ will be applied to the attached NAS record.
 sub export_insert {
   my $self = shift;
   my $svc_broadband = shift;
-  my %hash = map { $_ => $svc_broadband->get($_) } FS::nas->fields;
-  my $nas = $self->default_nas(
-    %hash,
+  my %hash = (
     'nasname'     => $svc_broadband->ip_addr,
     'description' => $svc_broadband->description,
     'svcnum'      => $svc_broadband->svcnum,
   );
-
-  my $error = 
-      $nas->insert()
-   || $nas->process_m2m('link_table' => 'export_nas',
-                        'target_table' => 'part_export',
-                        'params' => { $self->options });
+  foreach (FS::nas->fields) {
+    if ( length($svc_broadband->get($_)) ) {
+      $hash{$_} = $svc_broadband->get($_);
+    }
+  }
+  # if there's somehow a completely identical NAS in the table already,
+  # use that one.
+  my $nas = qsearchs('nas', \%hash);
+  my $error;
+  if ($nas) {
+    # propagate the export message
+    foreach my $part_export ($nas->part_export) {
+      $error = $part_export->export_nas_insert($nas);
+      die $error if $error;
+    }
+  } else {
+    $nas = $self->default_nas( %hash );
+    $error = $nas->insert || 
+        $nas->process_m2m('link_table' => 'export_nas',
+                          'target_table' => 'part_export',
+                          'params' => { $self->options });
+  }
   die $error if $error;
   return;
 }

-----------------------------------------------------------------------

Summary of changes:
 FS/FS/part_export/broadband_nas.pm |   37 +++++++++++++++++++++++++++--------
 1 files changed, 28 insertions(+), 9 deletions(-)




More information about the freeside-commits mailing list