+ $old->usergroup( [ $old->radius_groups ] );
+
+ if ( $new->usergroup ) {
+
+ foreach my $groupname ( @{$old->usergroup} ) {
+ if ( grep { $groupname eq $_ } @{$new->usergroup} ) {
+ $new->usergroup( [ grep { $groupname ne $_ } @{$new->usergroup} ] );
+ next;
+ }
+ my $radius_usergroup = qsearch('radius_usergroup', {
+ svcnum => $old->svcnum,
+ groupname => $groupname,
+ } );
+ my $error = $radius_usergroup->delete;
+ if ( $error ) {
+ $dbh->rollback if $oldAutoCommit;
+ return "error deleting radius_usergroup $groupname: $error";
+ }
+ }
+
+ foreach my $groupname ( @{$new->usergroup} ) {
+ my $radius_usergroup = new FS::radius_usergroup ( {
+ svcnum => $new->svcnum,
+ groupname => $groupname,
+ } );
+ my $error = $radius_usergroup->insert;
+ if ( $error ) {
+ $dbh->rollback if $oldAutoCommit;
+ return "error adding radius_usergroup $groupname: $error";
+ }
+ }
+
+ }
+