diff options
author | ivan <ivan> | 2004-05-03 14:32:10 +0000 |
---|---|---|
committer | ivan <ivan> | 2004-05-03 14:32:10 +0000 |
commit | 4e4a935e10dad30648d9d9ebb2069ca80217dc72 (patch) | |
tree | c2f9873f8c7a984415e0d321160b1d4f26d67325 | |
parent | 0f5028bc5a7789429a41bca886e5a38ed0fa099f (diff) |
make RADIUS groups available to shellcommands exports
-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 |