re-write RADIUS groups, RT13274
[freeside.git] / httemplate / edit / svc_acct.cgi
index e6cd7d8..1271237 100755 (executable)
@@ -45,9 +45,14 @@ function randomPass() {
 
 <TR>
   <TD ALIGN="right"><% mt('Username') |h %></TD>
-  <TD>
-    <INPUT TYPE="text" NAME="username" VALUE="<% $username %>" SIZE=<% $ulen2 %> MAXLENGTH=<% $ulen %>>
-  </TD>
+% if ( $svcnum && $conf->exists('svc_acct-no_edit_username') ) {
+    <TD BGCOLOR="#eeeeee"><% $svc_acct->username() %></TD>
+    <INPUT TYPE="hidden" NAME="username" VALUE="<% $username %>">
+% } else {
+    <TD>
+      <INPUT TYPE="text" NAME="username" VALUE="<% $username %>" SIZE=<% $ulen2 %> MAXLENGTH=<% $ulen %>>
+    </TD>
+% }
 </TR>
 
 %if ( $part_svc->part_svc_column('_password')->columnflag ne 'F' ) {
@@ -302,12 +307,21 @@ function randomPass() {
 
 <TR>
   <TD ALIGN="right"><% mt('RADIUS groups') |h %></TD>
-% if ( $part_svc->part_svc_column('usergroup')->columnflag eq 'F' ) { 
-
-    <TD BGCOLOR="#eeeeee"><% join('<BR>', @groups) %></TD>
+% if ( $part_svc_usergroup->columnflag eq 'F' ) { 
+    <TD BGCOLOR="#eeeeee"><% join('<BR>', @groupnames) %></TD>
 % } else { 
-
-    <TD><% FS::svc_acct::radius_usergroup_selector( \@groups ) %></TD>
+%   my $radius_group_selected = '';
+%   if ( $svc_acct->svcnum ) {
+%      $radius_group_selected = join(',',$svc_acct->radius_groups('NUMBERS'));
+%   }
+%   elsif ( !$svc_acct->svcnum && $part_svc_usergroup->columnflag eq 'D' ) {
+%       $radius_group_selected = $part_svc_usergroup->columnvalue;
+%   }
+    <TD><& /elements/select-radius_group.html, 
+                curr_value => $radius_group_selected,
+                element_name => 'radius_usergroup',
+        &>
+    </TD>
 % } 
 
 </TR>
@@ -433,9 +447,15 @@ unless ( $svcnum || $cgi->param('error') ) { #adding
 
 }
 
+my $part_svc_usergroup = $part_svc->part_svc_column('usergroup');
 #fixed radius groups always override & display
-if ( $part_svc->part_svc_column('usergroup')->columnflag eq 'F' ) {
-  @groups = split(',', $part_svc->part_svc_column('usergroup')->columnvalue);
+my @groupnames; # only used for display of Fixed RADIUS groups
+if ( $part_svc_usergroup->columnflag eq 'F' ) {
+  @groups = split(',',$part_svc_usergroup->columnvalue);
+  @groupnames = map { $_->description . " (" . $_->groupname . ")" } 
+                    qsearch({ 'table'         => 'radius_group',
+                           'extra_sql'     => "where groupnum in (".$part_svc_usergroup->columnvalue.")",
+                        });
 }
 
 my $action = $svcnum ? 'Edit' : 'Add';