From 08dc9fe500cf44346e409fb8c75eda541300d64d Mon Sep 17 00:00:00 2001 From: ivan Date: Sun, 6 Aug 2006 20:21:32 +0000 Subject: [PATCH] yow. fix up group handling --- FS/FS/svc_Common.pm | 4 ++-- FS/FS/svc_acct.pm | 10 +++++----- httemplate/edit/svc_acct.cgi | 19 ++++++++++++++----- 3 files changed, 21 insertions(+), 12 deletions(-) diff --git a/FS/FS/svc_Common.pm b/FS/FS/svc_Common.pm index fdb4132c4..17942c7ec 100644 --- a/FS/FS/svc_Common.pm +++ b/FS/FS/svc_Common.pm @@ -72,7 +72,7 @@ sub new { } #empty default -sub _fieldhandlers { (); } +sub _fieldhandlers { {}; } sub virtual_fields { @@ -475,7 +475,7 @@ sub setx { my $self = shift; my $x = shift; my @x = ref($x) ? @$x : ($x); - my $coderef = scalar(@_) ? shift : {}; + my $coderef = scalar(@_) ? shift : $self->_fieldhandlers; my $error = $self->ut_numbern('svcnum') diff --git a/FS/FS/svc_acct.pm b/FS/FS/svc_acct.pm index e7d2b37b6..c50dfd540 100644 --- a/FS/FS/svc_acct.pm +++ b/FS/FS/svc_acct.pm @@ -192,11 +192,11 @@ sub _fieldhandlers { { #false laziness with edit/svc_acct.cgi 'usergroup' => sub { - my $usergroup = shift; - if ( ref($usergroup) eq 'ARRAY' ) { - $usergroup; - } elsif ( length($usergroup) ) { - [ split(/\s*,\s*/, $usergroup) ]; + my( $self, $groups ) = @_; + if ( ref($groups) eq 'ARRAY' ) { + $groups; + } elsif ( length($groups) ) { + [ split(/\s*,\s*/, $groups) ]; } else { []; } diff --git a/httemplate/edit/svc_acct.cgi b/httemplate/edit/svc_acct.cgi index 8d50aeda0..14d6759dc 100755 --- a/httemplate/edit/svc_acct.cgi +++ b/httemplate/edit/svc_acct.cgi @@ -70,11 +70,20 @@ unless ( $svcnum || $cgi->param('error') ) { #adding $svc_acct->set_default_and_fixed( { #false laziness w/svc-acct::_fieldhandlers - 'usergroup' => sub { return $_[0] if ref($_[0]) eq 'ARRAY'; - @groups = split(/\s*,\s*/, shift ); - \@groups; - }, - } ); + 'usergroup' => sub { + my( $self, $groups ) = @_; + if ( ref($groups) eq 'ARRAY' ) { + @groups = @$groups; + $groups; + } elsif ( length($groups) ) { + @groups = split(/\s*,\s*/, $groups); + [ @groups ]; + } else { + @groups = (); + []; + } + } + ); } -- 2.11.0