X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fedit%2Fsvc_acct.cgi;h=14d6759dc87a6c897f209e1b20fa9ab3a564b8cd;hb=08dc9fe500cf44346e409fb8c75eda541300d64d;hp=1e87c67add97a8ebbd63f5d7fb84e1b05059460c;hpb=c1bb4ddb71147d0571bd301a6d8c452fdf0e1bc9;p=freeside.git
diff --git a/httemplate/edit/svc_acct.cgi b/httemplate/edit/svc_acct.cgi
index 1e87c67ad..14d6759dc 100755
--- a/httemplate/edit/svc_acct.cgi
+++ b/httemplate/edit/svc_acct.cgi
@@ -68,18 +68,22 @@ unless ( $svcnum || $cgi->param('error') ) { #adding
}
}
- #set fixed and default fields from part_svc
- foreach my $part_svc_column (
- grep { $_->columnflag } $part_svc->all_part_svc_column
- ) {
- if ( $part_svc_column->columnname eq 'usergroup' ) {
- @groups = split(',', $part_svc_column->columnvalue);
- } else {
- $svc_acct->setfield( $part_svc_column->columnname,
- $part_svc_column->columnvalue,
- );
+ $svc_acct->set_default_and_fixed( {
+ #false laziness w/svc-acct::_fieldhandlers
+ 'usergroup' => sub {
+ my( $self, $groups ) = @_;
+ if ( ref($groups) eq 'ARRAY' ) {
+ @groups = @$groups;
+ $groups;
+ } elsif ( length($groups) ) {
+ @groups = split(/\s*,\s*/, $groups);
+ [ @groups ];
+ } else {
+ @groups = ();
+ [];
+ }
}
- }
+ );
}
@@ -274,7 +278,7 @@ if ( $part_svc->part_svc_column('popnum')->columnflag eq 'F' ) {
<% foreach my $xid (qw( uid gid )) { %>
<%
- if ( $part_svc->part_svc_column($xid)->columnflag eq 'F'
+ if ( $part_svc->part_svc_column($xid)->columnflag =~ /^[FA]$/
|| ! $conf->exists("svc_acct-edit_$xid")
) {
%>
@@ -376,7 +380,7 @@ if ( $part_svc->part_svc_column('shell')->columnflag eq 'F'
<% } %>
-<% if ( $part_svc->part_svc_column('slipip')->columnflag eq 'F' ) { %>
+<% if ( $part_svc->part_svc_column('slipip')->columnflag =~ /^[FA]$/ ) { %>
@@ -396,7 +400,7 @@ foreach my $r ( grep { /^r(adius|[cr])_/ } fields('svc_acct') ) {
my $a = $2;
%>
- <% if ( $part_svc->part_svc_column($r)->columnflag eq 'F' ) { %>
+ <% if ( $part_svc->part_svc_column($r)->columnflag =~ /^[FA]$/ ) { %>