summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorivan <ivan>2006-08-06 20:21:32 +0000
committerivan <ivan>2006-08-06 20:21:32 +0000
commit08dc9fe500cf44346e409fb8c75eda541300d64d (patch)
treef767e3eb2924407bbaaef015246ab6b0b9008bbe
parentad18fd616d98b80945b455ca170ba02089723873 (diff)
yow. fix up group handling
-rw-r--r--FS/FS/svc_Common.pm4
-rw-r--r--FS/FS/svc_acct.pm10
-rwxr-xr-xhttemplate/edit/svc_acct.cgi19
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 = ();
+ [];
+ }
+ }
+ );
}