sha512 crypt() export
[freeside.git] / FS / FS / part_export / shellcommands_withdomain.pm
index 7c5d904..004c421 100644 (file)
@@ -15,6 +15,9 @@ tie my %options, 'Tie::IxHash',
                        type =>'textarea',
                        #default=>"$_password\n$_password\n",
                      },
+  'useradd_no_queue' => { label => 'Run immediately',
+                 type  => 'checkbox',
+           },
   'userdel' => { label=>'Delete command',
                  #default=>'',
                },
@@ -22,6 +25,9 @@ tie my %options, 'Tie::IxHash',
                        type =>'textarea',
                        #default=>'',
                      },
+  'userdel_no_queue' => { label => 'Run immediately',
+                 type  => 'checkbox',
+           },
   'usermod' => { label=>'Modify command',
                  default=>'',
                },
@@ -29,6 +35,9 @@ tie my %options, 'Tie::IxHash',
                        type =>'textarea',
                        #default=>"$_password\n$_password\n",
                      },
+  'usermod_no_queue' => { label => 'Run immediately',
+                 type  => 'checkbox',
+           },
   'usermod_pwonly' => { label=>'Disallow username, domain, uid, dir and RADIUS group changes',
                         type =>'checkbox',
                       },
@@ -41,28 +50,46 @@ tie my %options, 'Tie::IxHash',
   'suspend_stdin' => { label=>'Suspension command STDIN',
                        default=>'',
                      },
+  'suspend_no_queue' => { label => 'Run immediately',
+                 type  => 'checkbox',
+           },
   'unsuspend' => { label=>'Unsuspension command',
                    default=>'',
                  },
   'unsuspend_stdin' => { label=>'Unsuspension command STDIN',
                          default=>'',
                        },
+  'unsuspend_no_queue' => { label => 'Run immediately',
+                 type  => 'checkbox',
+           },
   'crypt' => { label   => 'Default password encryption',
-               type=>'select', options=>[qw(crypt md5)],
-               default => 'crypt',
+               type=>'select', options=>[qw(crypt md5 sha512)],
+               default => 'sha512',
              },
+  'fail_on_output' => {
+      label => 'Treat any output from the command as an error',
+      type  => 'checkbox',
+  },
+  'ignore_all_errors' => {
+      label => 'Ignore all errors from the command',
+      type  => 'checkbox',
+  },
+  'ignored_errors' => { label   => 'Regexes of specific errors to ignore, separated by newlines',
+                        type    => 'textarea'
+                      },
 ;
 
 %info = (
-  'svc'     => 'svc_acct',
-  'desc'    => 'Real-time export via remote SSH (vpopmail, ISPMan)',
-  'options' => \%options,
-  'notes'   => <<'END'
+  'svc'         => 'svc_acct',
+  'desc'        => 'Real-time export via remote SSH (vpopmail, ISPMan, MagicMail)',
+  'options'     => \%options,
+  'svc_machine' => 1,
+  'notes'       => <<'END'
 Run remote commands via SSH.  username@domain (rather than just usernames) are
 considered unique (also see shellcommands).  You probably want this if the
 commands you are running will accept a domain as a parameter, and will allow
 the same username with different domains.  You will need to
-<a href="../docs/ssh.html">setup SSH for unattended operation</a>.
+<a href="http://www.freeside.biz/mediawiki/index.php/Freeside:1.9:Documentation:Administration:SSH_Keys">setup SSH for unattended operation</a>.
 
 <BR><BR>Use these buttons for some useful presets:
 <UL>
@@ -84,6 +111,17 @@ the same username with different domains.  You will need to
     this.form.usermod_stdin.value = "";
     this.form.usermod_pwonly.checked = true;
   '>
+  <LI><INPUT TYPE="button" VALUE="MagicMail" onClick='
+    this.form.useradd.value = "/usr/bin/mm_create_email_service -e $svcnum -d $domain -u $username -p $quoted_password -f $first -l $last -m $svcnum -g EMAIL";
+    this.form.useradd_stdin.value = "";
+    this.form.useradd_no_queue.checked = 1;
+    this.form.userdel.value = "/usr/bin/mm_delete_user -e ${username}\\\@${domain}";
+    this.form.userdel_stdin.value = "";
+    this.form.suspend.value = "/usr/bin/mm_suspend_user -e ${username}\\\@${domain}";
+    this.form.suspend_stdin.value = "";
+    this.form.unsuspend.value = "/usr/bin/mm_activate_user -e ${username}\\\@${domain}";
+    this.form.unsuspend_stdin.value = "";
+  '>
 </UL>
 
 The following variables are available for interpolation (prefixed with
@@ -103,7 +141,32 @@ The following variables are available for interpolation (prefixed with
   <LI><code>$shell</code>
   <LI><code>$quota</code>
   <LI><code>@radius_groups</code>
-  <LI>All other fields in <a href="../docs/schema.html#svc_acct">svc_acct</a> are also available.
+  <LI><code>$reasonnum (when suspending)</code>
+  <LI><code>$reasontext (when suspending)</code>
+  <LI><code>$reasontypenum (when suspending)</code>
+  <LI><code>$reasontypetext (when suspending)</code>
+  <LI><code>$pkgnum</code>
+  <LI><code>$custnum</code>
+  <LI>All other fields in <b>svc_acct</b> are also available.
+  <LI>The following fields from <b>cust_main</b> are also available (except during replace): company, address1, address2, city, state, zip, county, daytime, night, fax, otaker, agent_custid, locale.  When used on the command line (rather than STDIN), they will be quoted for the shell already (do not add additional quotes).
+</UL>
+For the package changed command only, the following fields are also available:
+<UL>
+  <LI>$old_pkgnum and $new_pkgnum
+  <LI>$old_pkgpart and $new_pkgpart
+  <LI>$old_agent_pkgid and $new_agent_pkgid
+  <LI>$old_order_date and $new_order_date
+  <LI>$old_start_date and $new_start_date
+  <LI>$old_setup and $new_setup
+  <LI>$old_bill and $new_bill
+  <LI>$old_last_bill and $new_last_bill
+  <LI>$old_susp and $new_susp
+  <LI>$old_adjourn and $new_adjourn
+  <LI>$old_resume and $new_resume
+  <LI>$old_cancel and $new_cancel
+  <LI>$old_unancel and $new_unancel
+  <LI>$old_expire and $new_expire
+  <LI>$old_contract_end and $new_contract_end
 </UL>
 END
 );