make sure default RADIUS groups don't override ones for existing records
[freeside.git] / FS / FS / svc_Common.pm
index fdb4132..907f35f 100644 (file)
@@ -52,7 +52,8 @@ sub new {
   my $newhash = shift;
   $self->{'Hash'} = { map { $_ => $newhash->{$_} } qw(svcnum svcpart) };
 
-  $self->setdefault( $self->_fieldhandlers );
+  $self->setdefault( $self->_fieldhandlers )
+    unless $self->svcnum;
 
   $self->{'Hash'}{$_} = $newhash->{$_}
     foreach grep { defined($newhash->{$_}) && length($newhash->{$_}) }
@@ -72,7 +73,7 @@ sub new {
 }
 
 #empty default
-sub _fieldhandlers { (); }
+sub _fieldhandlers { {}; }
 
 sub virtual_fields {
 
@@ -475,7 +476,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')