import torrus 1.0.9
[freeside.git] / httemplate / edit / svc_acct.cgi
index b9a587d..0a191b4 100755 (executable)
@@ -9,6 +9,18 @@
   <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 %>">
@@ -35,13 +47,14 @@ Service # <% $svcnum ? "<B>$svcnum</B>" : " (NEW)" %><BR>
 <TR>
   <TD ALIGN="right">Password</TD>
   <TD>
-    <INPUT TYPE="text" NAME="_password" VALUE="<% $password %>" SIZE=<% $pmax2 %> MAXLENGTH=<% $pmax %>>
-    (blank to generate)
+    <INPUT TYPE="text" NAME="clear_password" VALUE="<% $password %>" SIZE=<% $pmax2 %> MAXLENGTH=<% $pmax %>>
+    <INPUT TYPE="button" VALUE="Generate" onclick="randomPass();">
   </TD>
 </TR>
 %}else{
-    <INPUT TYPE="hidden" NAME="_password" VALUE="<% $password %>">
+    <INPUT TYPE="hidden" NAME="clear_password" VALUE="<% $password %>">
 %}
+<INPUT TYPE="hidden" NAME="_password_encoding" VALUE="<% $svc_acct->_password_encoding %>">
 %
 %my $sec_phrase = $svc_acct->sec_phrase;
 %if ( $conf->exists('security_phrase') 
@@ -109,7 +122,27 @@ Service # <% $svcnum ? "<B>$svcnum</B>" : " (NEW)" %><BR>
     </TD>
   </TR>
 % } 
-%
+
+
+% if ( $communigate ) {
+
+    <TR>
+      <TD ALIGN="right">Aliases</TD>
+      <TD><INPUT TYPE="text" NAME="cgp_aliases" VALUE="<% $svc_acct->cgp_aliases %>"></TD>
+    </TR>
+
+% } else {
+    <INPUT TYPE="hidden" NAME="cgp_aliases" VALUE="<% $svc_acct->cgp_aliases %>">
+% }
+
+
+<% include('/elements/tr-select-svc_pbx.html',
+             'curr_value' => $svc_acct->pbxsvc,
+             'part_svc'   => $part_svc,
+             'cust_pkg'   => $cust_pkg,
+          )
+%>
+
 %#pop
 %my $popnum = $svc_acct->popnum || 0;
 %if ( $part_svc->part_svc_column('popnum')->columnflag eq 'F' ) {
@@ -221,31 +254,23 @@ Service # <% $svcnum ? "<B>$svcnum</B>" : " (NEW)" %><BR>
     </TD>
   </TR>
 % } 
-% if ( $part_svc->part_svc_column('quota')->columnflag eq 'F' ) { 
-
-
-  <INPUT TYPE="hidden" NAME="quota" VALUE="<% $svc_acct->quota %>">
-% } else { 
 
+<% include('svc_acct/communigate.html',
+             'svc_acct'    => $svc_acct,
+             'part_svc'    => $part_svc,
+             'communigate' => $communigate,
+          )
+%>
 
-  <TR>
-    <TD ALIGN="right">Quota:</TD>
-    <TD><INPUT TYPE="text" NAME="quota" VALUE="<% $svc_acct->quota %>"></TD>
-  </TR>
-% } 
 % if ( $part_svc->part_svc_column('slipip')->columnflag =~ /^[FA]$/ ) { 
-
-
   <INPUT TYPE="hidden" NAME="slipip" VALUE="<% $svc_acct->slipip %>">
 % } else { 
-
-
   <TR>
     <TD ALIGN="right">IP</TD>
     <TD><INPUT TYPE="text" NAME="slipip" VALUE="<% $svc_acct->slipip %>"></TD>
   </TR>
 % } 
-%
+
 % my %label = ( seconds => 'Time',
 %               upbytes => 'Upload bytes',
 %               downbytes => 'Download bytes',
@@ -354,9 +379,11 @@ if ( $cgi->param('error') ) {
   $part_svc=qsearchs('part_svc',{'svcpart'=>$svcpart});
   die "No part_svc entry!" unless $part_svc;
 
-    $svc_acct = new FS::svc_acct({svcpart => $svcpart}); 
+  $svc_acct = new FS::svc_acct({svcpart => $svcpart}); 
 
-    $svcnum='';
+  $svcnum='';
+
+  $svc_acct->password_recover('Y'); #default. hmm.
 
 } else { #editing
 
@@ -379,6 +406,9 @@ if ( $cgi->param('error') ) {
 
 }
 
+my $communigate = scalar($part_svc->part_export('communigate_pro'));
+                # || scalar($part_svc->part_export('communigate_pro_singledomain'));
+
 my( $cust_pkg, $cust_main ) = ( '', '' );
 if ( $pkgnum ) {
   $cust_pkg = qsearchs('cust_pkg', { 'pkgnum' => $pkgnum } );
@@ -427,15 +457,17 @@ my $svc = $part_svc->getfield('svc');
 my $otaker = getotaker;
 
 my $username = $svc_acct->username;
-my $password;
-if ( $svc_acct->_password ) {
-  if ( $conf->exists('showpasswords') || ! $svcnum ) {
-    $password = $svc_acct->_password;
-  } else {
-    $password = "*HIDDEN*";
+
+my $password = '';
+if ( $cgi->param('error') ) {
+  $password = $cgi->param('clear_password');
+} elsif ( $svcnum ) {
+  my $password_encryption = $svc_acct->_password_encryption;
+  if ( $password = $svc_acct->get_cleartext_password ) {
+    $password = '*HIDDEN*' unless $conf->exists('showpasswords');
+  } elsif( $svc_acct->_password and $password_encryption ne 'plain' ) {
+    $password = "(".uc($password_encryption)." encrypted)";
   }
-} else {
-  $password = '';
 }
 
 my $ulen = 
@@ -444,9 +476,13 @@ my $ulen =
   : dbdef->table('svc_acct')->column('username')->length;
 my $ulen2 = $ulen+2;
 
-my $pmax = $conf->config('passwordmax') || 8;
+my $pmax = max($conf->config('passwordmax') || 13);
 my $pmax2 = $pmax+2;
 
 my $p1 = popurl(1);
 
+sub max {
+  (sort(@_))[-1]
+}
+
 </%init>