}
#empty default
-sub _fieldhandlers { (); }
+sub _fieldhandlers { {}; }
sub virtual_fields {
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')
{
#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 {
[];
}
$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 = ();
+ [];
+ }
+ }
+ );
}