This commit was generated by cvs2svn to compensate for changes in r6255,
[freeside.git] / FS / FS / part_export / shellcommands_withdomain.pm
1 package FS::part_export::shellcommands_withdomain;
2
3 use vars qw(@ISA %info);
4 use Tie::IxHash;
5 use FS::part_export::shellcommands;
6
7 @ISA = qw(FS::part_export::shellcommands);
8
9 tie my %options, 'Tie::IxHash',
10   'user' => { label=>'Remote username', default=>'root' },
11   'useradd' => { label=>'Insert command',
12                  #default=>''
13                },
14   'useradd_stdin' => { label=>'Insert command STDIN',
15                        type =>'textarea',
16                        #default=>"$_password\n$_password\n",
17                      },
18   'userdel' => { label=>'Delete command',
19                  #default=>'',
20                },
21   'userdel_stdin' => { label=>'Delete command STDIN',
22                        type =>'textarea',
23                        #default=>'',
24                      },
25   'usermod' => { label=>'Modify command',
26                  default=>'',
27                },
28   'usermod_stdin' => { label=>'Modify command STDIN',
29                        type =>'textarea',
30                        #default=>"$_password\n$_password\n",
31                      },
32   'usermod_pwonly' => { label=>'Disallow username, domain, uid, dir and RADIUS group changes',
33                         type =>'checkbox',
34                       },
35   'usermod_nousername' => { label=>'Disallow just username changes',
36                             type =>'checkbox',
37                           },
38   'suspend' => { label=>'Suspension command',
39                  default=>'',
40                },
41   'suspend_stdin' => { label=>'Suspension command STDIN',
42                        default=>'',
43                      },
44   'unsuspend' => { label=>'Unsuspension command',
45                    default=>'',
46                  },
47   'unsuspend_stdin' => { label=>'Unsuspension command STDIN',
48                          default=>'',
49                        },
50   'crypt' => { label   => 'Default password encryption',
51                type=>'select', options=>[qw(crypt md5)],
52                default => 'crypt',
53              },
54 ;
55
56 %info = (
57   'svc'     => 'svc_acct',
58   'desc'    => 'Real-time export via remote SSH (vpopmail, ISPMan)',
59   'options' => \%options,
60   'notes'   => <<'END'
61 Run remote commands via SSH.  username@domain (rather than just usernames) are
62 considered unique (also see shellcommands).  You probably want this if the
63 commands you are running will accept a domain as a parameter, and will allow
64 the same username with different domains.  You will need to
65 <a href="../docs/ssh.html">setup SSH for unattended operation</a>.
66
67 <BR><BR>Use these buttons for some useful presets:
68 <UL>
69   <LI><INPUT TYPE="button" VALUE="vpopmail" onClick='
70     this.form.useradd.value = "/home/vpopmail/bin/vadduser $username\\\@$domain $quoted_password";
71     this.form.useradd_stdin.value = "";
72     this.form.userdel.value = "/home/vpopmail/bin/vdeluser $username\\\@$domain";
73     this.form.userdel_stdin.value="";
74     this.form.usermod.value = "/home/vpopmail/bin/vpasswd $new_username\\\@$new_domain $new_quoted_password";
75     this.form.usermod_stdin.value = "";
76     this.form.usermod_pwonly.checked = true;
77   '>
78   <LI><INPUT TYPE="button" VALUE="ISPMan CLI" onClick='
79     this.form.useradd.value = "/usr/local/ispman/bin/ispman.addUser -d $domain -f $first -l $last -q $quota -p $quoted_password $username";
80     this.form.useradd_stdin.value = "";
81     this.form.userdel.value = "/usr/local/ispman/bin/ispman.delUser -d $domain $username";
82     this.form.userdel_stdin.value="";
83     this.form.usermod.value = "/usr/local/ispman/bin/ispman.passwd.user $new_username\\\@$new_domain $new_quoted_password";
84     this.form.usermod_stdin.value = "";
85     this.form.usermod_pwonly.checked = true;
86   '>
87 </UL>
88
89 The following variables are available for interpolation (prefixed with
90 <code>new_</code> or <code>old_</code> for replace operations):
91 <UL>
92   <LI><code>$username</code>
93   <LI><code>$domain</code>
94   <LI><code>$_password</code>
95   <LI><code>$quoted_password</code> - unencrypted password, already quoted for the shell (do not add additional quotes)
96   <LI><code>$crypt_password</code> - encrypted password, already quoted for the shell (do not add additional quotes)
97   <LI><code>$uid</code>
98   <LI><code>$gid</code>
99   <LI><code>$finger</code> - GECOS, already quoted for the shell (do not add additional quotes)
100   <LI><code>$first</code> - First name of GECOS, already quoted for the shell (do not add additional quotes)
101   <LI><code>$last</code> - Last name of GECOS, already quoted for the shell (do not add additional quotes)
102   <LI><code>$dir</code> - home directory
103   <LI><code>$shell</code>
104   <LI><code>$quota</code>
105   <LI><code>@radius_groups</code>
106   <LI>All other fields in <a href="../docs/schema.html#svc_acct">svc_acct</a> are also available.
107 </UL>
108 END
109 );
110
111 1;
112