diff options
| -rw-r--r-- | FS/FS/part_export/shellcommands.pm | 10 | ||||
| -rw-r--r-- | FS/FS/part_export/shellcommands_withdomain.pm | 1 | ||||
| -rw-r--r-- | FS/FS/svc_acct.pm | 7 | 
3 files changed, 14 insertions, 4 deletions
diff --git a/FS/FS/part_export/shellcommands.pm b/FS/FS/part_export/shellcommands.pm index 78f9e9690..4431cc0c4 100644 --- a/FS/FS/part_export/shellcommands.pm +++ b/FS/FS/part_export/shellcommands.pm @@ -154,6 +154,7 @@ old_ for replace operations):    <LI><code>$dir</code> - home directory    <LI><code>$shell</code>    <LI><code>$quota</code> +  <LI><code>@radius_groups</code>    <LI>All other fields in <a href="../docs/schema.html#svc_acct">svc_acct</a> are also available.  </UL>  END @@ -228,6 +229,8 @@ sub _export_command {      );    } +  @radius_groups = $svc_acct->radius_groups; +    $self->shellcommands_queue( $svc_acct->svcnum,      user         => $self->option('user')||'root',      host         => $self->machine, @@ -266,6 +269,9 @@ sub _export_replace {      );    } +  @old_radius_groups = $old->radius_groups; +  @new_radius_groups = $new->radius_groups; +    if ( $self->option('usermod_pwonly') ) {      my $error = '';      if ( $old_username ne $new_username ) { @@ -280,6 +286,10 @@ sub _export_replace {      if ( $old_dir ne $new_dir ) {        $error ||= "can't change dir";      } +    if ( join("\n", sort @old_radius_groups) ne +         join("\n", sort @new_radius_groups)    ) { +      $error ||= "can't change RADIUS groups"; +    }      return $error. ' ('. $self->exporttype. ' to '. $self->machine. ')'        if $error;    } diff --git a/FS/FS/part_export/shellcommands_withdomain.pm b/FS/FS/part_export/shellcommands_withdomain.pm index 8a56bab1c..4f1b25bc4 100644 --- a/FS/FS/part_export/shellcommands_withdomain.pm +++ b/FS/FS/part_export/shellcommands_withdomain.pm @@ -95,6 +95,7 @@ The following variables are available for interpolation (prefixed with    <LI><code>$dir</code> - home directory    <LI><code>$shell</code>    <LI><code>$quota</code> +  <LI><code>@radius_groups</code>    <LI>All other fields in <a href="../docs/schema.html#svc_acct">svc_acct</a> are also available.  </UL>  END diff --git a/FS/FS/svc_acct.pm b/FS/FS/svc_acct.pm index 100af6cb6..e97afe36a 100644 --- a/FS/FS/svc_acct.pm +++ b/FS/FS/svc_acct.pm @@ -187,8 +187,7 @@ The additional fields pkgnum and svcpart (see L<FS::cust_svc>) should be  defined.  An FS::cust_svc record will be created and inserted.  The additional field I<usergroup> can optionally be defined; if so it should -contain an arrayref of group names.  See L<FS::radius_usergroup>.  (used in -sqlradius export only) +contain an arrayref of group names.  See L<FS::radius_usergroup>.  The additional field I<child_objects> can optionally be defined; if so it  should contain an arrayref of FS::tablename objects.  They will have their @@ -535,8 +534,8 @@ Replaces OLD_RECORD with this one in the database.  If there is an error,  returns the error, otherwise returns false.  The additional field I<usergroup> can optionally be defined; if so it should -contain an arrayref of group names.  See L<FS::radius_usergroup>.  (used in -sqlradius export only) +contain an arrayref of group names.  See L<FS::radius_usergroup>. +  =cut  | 
