NG auth: fix new customer, remove mapsecrets support, RT#21563
[freeside.git] / httemplate / edit / svc_acct.cgi
index 44c23f4..574fb51 100755 (executable)
@@ -1,4 +1,4 @@
-<& /elements/header.html, emt("$action [_1] account",$svc) &>
+<& /elements/header.html, mt("$action [_1] account",$svc) &>
 
 <& /elements/error.html &>
 
@@ -9,19 +9,6 @@
   <BR>
 % } 
 
-<SCRIPT TYPE="text/javascript">
-function randomPass() {
-  var i=0;
-  var pw_set='<% join('', 'a'..'z', 'A'..'Z', '0'..'9' ) %>';
-  var pass='';
-  while(i < 8) {
-    i++;
-    pass += pw_set.charAt(Math.floor(Math.random() * pw_set.length));
-  }
-  document.OneTrueForm.clear_password.value = pass;
-}
-</SCRIPT>
-
 <FORM NAME="OneTrueForm" ACTION="<% $p1 %>process/svc_acct.cgi" METHOD=POST>
 <INPUT TYPE="hidden" NAME="svcnum" VALUE="<% $svcnum %>">
 <INPUT TYPE="hidden" NAME="pkgnum" VALUE="<% $pkgnum %>">
@@ -45,17 +32,23 @@ 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' ) {
 <TR>
+% #XXX eventually should require "Edit Password" ACL
   <TD ALIGN="right"><% mt('Password') |h %></TD>
   <TD>
-    <INPUT TYPE="text" NAME="clear_password" VALUE="<% $password %>" SIZE=<% $pmax2 %> MAXLENGTH=<% $pmax %>>
-    <INPUT TYPE="button" VALUE="<% mt('Generate') |h %>" onclick="randomPass();">
+    <INPUT TYPE="text" ID="clear_password" NAME="clear_password" VALUE="<% $password %>" SIZE=<% $pmax2 %> MAXLENGTH=<% $pmax %>>
+    <& /elements/random_pass.html, 'clear_password' &>
   </TD>
 </TR>
 %}else{
@@ -92,7 +85,7 @@ function randomPass() {
 %  if ( $domsvc ) {
 %    my $svc_domain = qsearchs('svc_domain', { 'svcnum' => $domsvc, } );
 %    if ( $svc_domain ) {
-%      $svc_domain{$svc_domain->svcnum} = $svc_domain;
+%      $svc_domain{$svc_domain->svcnum} = $svc_domain->domain;
 %    } else {
 %      warn "unknown svc_domain.svcnum for svc_acct.domsvc: $domsvc";
 %    }
@@ -155,6 +148,25 @@ function randomPass() {
     <TD><% FS::svc_acct_pop::popselector($popnum) %></TD>
   </TR>
 % } 
+
+%#tower (huh)
+%if ( $conf->exists('svc_acct-tower_sector')
+%     && $part_svc->part_svc_column('sectornum')->columnflag ne 'F' ) {
+    <& /elements/tr-select-tower_sector.html,
+         'curr_value' => $svc_acct->sectornum,
+         #'part_svc'   => $part_svc,
+         #'cust_pkg'   => $cust_pkg,
+    &>
+%} else {
+    <INPUT TYPE="hidden" NAME="sectornum" VALUE="<% $svc_acct->sectornum %>">
+%}
+
+<& /elements/tr-svc_export_machine.html,
+     'svc'      => $svc_acct,
+     'part_svc' => $part_svc,
+     'cgi'      => $cgi,
+&>
+
 % #uid/gid 
 % foreach my $xid (qw( uid gid )) { 
 %
@@ -252,14 +264,26 @@ function randomPass() {
              'communigate' => $communigate,
 &>
 
-% if ( $part_svc->part_svc_column('slipip')->columnflag =~ /^[FA]$/ ) { 
-  <INPUT TYPE="hidden" NAME="slipip" VALUE="<% $svc_acct->slipip %>">
-% } else { 
-  <TR>
-    <TD ALIGN="right"><% mt('IP') |h %></TD>
-    <TD><INPUT TYPE="text" NAME="slipip" VALUE="<% $svc_acct->slipip %>"></TD>
-  </TR>
-% } 
+% if ( $conf->exists('svc_acct-ip_addr') ) {
+%   # router/block selection UI
+%   # (should we show this if slipip is fixed?)
+<& /elements/tr-select-router_block_ip.html, 
+  'object' => $svc_acct,
+  'ip_field' => 'slipip'
+&>
+% } else {
+%   # don't expose these to the user--they're only useful in the other case
+  <INPUT TYPE="hidden" NAME="routernum" VALUE="<% $svc_acct->routernum %>">
+  <INPUT TYPE="hidden" NAME="blocknum"  VALUE="<% $svc_acct->blocknum  %>">
+%   if ( $part_svc->part_svc_column('slipip')->columnflag =~ /^[FA]$/ ) { 
+    <INPUT TYPE="hidden" NAME="slipip" VALUE="<% $svc_acct->slipip %>">
+%   } else { 
+    <TR>
+      <TD ALIGN="right"><% mt('IP') |h %></TD>
+      <TD><INPUT TYPE="text" NAME="slipip" VALUE="<% $svc_acct->slipip %>"></TD>
+    </TR>
+%   }
+% }
 
 % my %label = ( seconds => 'Time',
 %               upbytes => 'Upload bytes',
@@ -302,12 +326,22 @@ 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('groupnum'));
+%   }
+%   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',
+                multiple => 1,
+        &>
+    </TD>
 % } 
 
 </TR>
@@ -433,17 +467,21 @@ 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 { $_->long_description } 
+                    qsearch({ 'table'         => 'radius_group',
+                           'extra_sql'     => "where groupnum in (".$part_svc_usergroup->columnvalue.")",
+                        }) if length($part_svc_usergroup->columnvalue);
 }
 
 my $action = $svcnum ? 'Edit' : 'Add';
 
 my $svc = $part_svc->getfield('svc');
 
-my $otaker = getotaker;
-
 my $username = $svc_acct->username;
 
 my $password = '';