projects
/
freeside.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix ISPMan password changing command
[freeside.git]
/
FS
/
FS
/
part_export
/
shellcommands.pm
diff --git
a/FS/FS/part_export/shellcommands.pm
b/FS/FS/part_export/shellcommands.pm
index
78f9e96
..
4f201cf
100644
(file)
--- 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>$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
<LI>All other fields in <a href="../docs/schema.html#svc_acct">svc_acct</a> are also available.
</UL>
END
@@
-175,14
+176,25
@@
sub _export_delete {
sub _export_suspend {
my($self) = shift;
sub _export_suspend {
my($self) = shift;
- $self->_export_command('suspend', @_);
+ $self->_export_command
_or_super
('suspend', @_);
}
sub _export_unsuspend {
my($self) = shift;
}
sub _export_unsuspend {
my($self) = shift;
- $self->_export_command('unsuspend', @_);
+ $self->_export_command
_or_super
('unsuspend', @_);
}
}
+sub _export_command_or_super {
+ my($self, $action) = (shift, shift);
+ if ( $self->option($action) =~ /^\s*$/ ) {
+ my $method = "SUPER::_export_$action";
+ $self->$method(@_);
+ } else {
+ $self->_export_command($action, @_);
+ }
+};
+
+
sub _export_command {
my ( $self, $action, $svc_acct) = (shift, shift, shift);
my $command = $self->option($action);
sub _export_command {
my ( $self, $action, $svc_acct) = (shift, shift, shift);
my $command = $self->option($action);
@@
-228,6
+240,8
@@
sub _export_command {
);
}
);
}
+ @radius_groups = $svc_acct->radius_groups;
+
$self->shellcommands_queue( $svc_acct->svcnum,
user => $self->option('user')||'root',
host => $self->machine,
$self->shellcommands_queue( $svc_acct->svcnum,
user => $self->option('user')||'root',
host => $self->machine,
@@
-266,6
+280,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 ) {
if ( $self->option('usermod_pwonly') ) {
my $error = '';
if ( $old_username ne $new_username ) {
@@
-280,6
+297,10
@@
sub _export_replace {
if ( $old_dir ne $new_dir ) {
$error ||= "can't change dir";
}
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;
}
return $error. ' ('. $self->exporttype. ' to '. $self->machine. ')'
if $error;
}