summaryrefslogtreecommitdiff
path: root/httemplate/edit/part_export.cgi
diff options
context:
space:
mode:
authorivan <ivan>2002-03-20 21:31:49 +0000
committerivan <ivan>2002-03-20 21:31:49 +0000
commitf1038a648b3d53db925b23519e7cd2a30c6837ed (patch)
treecda6c30496db688ed3fd702d111a76bc2c6d2e82 /httemplate/edit/part_export.cgi
parent74f795a943560dfc03f46642536386ce36355bb4 (diff)
new export! infostreet and sqlradius provisioning switched over
(Bug #299 - doesn't close it, but all the groundwork is done) also removes non-transactional ICRADIUS export from svc_acct.export (closes: Bug#347)
Diffstat (limited to 'httemplate/edit/part_export.cgi')
-rw-r--r--httemplate/edit/part_export.cgi130
1 files changed, 115 insertions, 15 deletions
diff --git a/httemplate/edit/part_export.cgi b/httemplate/edit/part_export.cgi
index ffce043..a44bd39 100644
--- a/httemplate/edit/part_export.cgi
+++ b/httemplate/edit/part_export.cgi
@@ -22,7 +22,7 @@ if ( $cgi->param('error') ) {
} );
}
-warn "***$query***";
+#warn "***$query***";
if ( $cgi->param('clone') && $cgi->param('clone') =~ /^(\d+)$/ ) {
$action = 'Add';
my $old_part_export = qsearchs('part_export', { 'exportnum' => $1 } );
@@ -37,7 +37,112 @@ if ( $cgi->param('clone') && $cgi->param('clone') =~ /^(\d+)$/ ) {
}
$action ||= $part_export->exportnum ? 'Edit' : 'Add';
-my @types = qw(shell bsdshell textradius sqlradius cp);
+my %exports = (
+ 'svc_acct' => {
+ 'sysvshell' => {
+ 'desc' =>
+ 'Batch export of /etc/passwd and /etc/shadow files (Linux/SysV)',
+ 'options' => {},
+ },
+ 'bsdshell' => {
+ 'desc' =>
+ 'Batch export of /etc/passwd and /etc/master.passwd files (BSD)',
+ 'options' => {},
+ },
+# 'nis' => {
+# 'desc' =>
+# 'Batch export of /etc/global/passwd and /etc/global/shadow for NIS ',
+# 'options' => {},
+# },
+ 'bsdshell' => {
+ 'desc' =>
+ 'Batch export of /etc/passwd and /etc/master.passwd files (BSD)',
+ 'options' => {},
+ },
+ 'textradius' => {
+ 'desc' => 'Batch export of a text /etc/raddb/users file (Livingston, Cistron)',
+ },
+ 'sqlradius' => {
+ 'desc' => 'Real-time export to SQL-backed RADIUS (ICRADIUS, FreeRADIUS)',
+ 'options' => {
+ 'datasrc' => { label=>'DBI data source' },
+ 'username' => { label=>'Database username' },
+ 'password' => { label=>'Database password' },
+ },
+ 'nodomain' => 'Y',
+ 'notes' => 'Not specifying datasrc will export to the freeside database? (no... notes on MySQL replication, etc., from Conf.pm && export.html etc.',
+ },
+ 'cyrus' => {
+ 'desc' => 'Real-time export to Cyrus IMAP server',
+ },
+ 'cp' => {
+ 'desc' => 'Real-time export to Critical Path Account Provisioning Protocol',
+ },
+ 'infostreet' => {
+ 'desc' => 'Real-time export to InfoStreet streetSmartAPI',
+ 'options' => {
+ 'url' => { label=>'XML-RPC Access URL', },
+ 'login' => { label=>'InfoStreet login', },
+ 'password' => { label=>'InfoStreet password', },
+ 'groupID' => { label=>'InfoStreet groupID', },
+ },
+ 'nodomain' => 'Y',
+ 'notes' => 'http://www.infostreet.com/ .... install Frontier::Client',
+ }
+ },
+
+ 'svc_domain' => {},
+
+ 'svc_acct_sm' => {},
+
+ 'svc_forward' => {},
+
+ 'svc_www' => {},
+
+);
+
+my $svcdb = $part_export->part_svc->svcdb;
+my %layers = map { $_ => "$_ - ". $exports{$svcdb}{$_}{desc} }
+ keys %{$exports{$svcdb}};
+$layers{''}='';
+
+my $widget = new HTML::Widgets::SelectLayers(
+ 'selected_layer' => $part_export->exporttype,
+ 'selected_layer' => $part_export->exporttype,
+ 'options' => \%layers,
+ 'form_name' => 'dummy',
+ 'form_action' => 'process/part_export.cgi',
+ 'form_text' => [qw( exportnum svcpart machine )],
+# 'form_checkbox' => [qw()],
+ 'html_between' => "</TD></TR></TABLE>\n",
+ 'layer_callback' => sub {
+ my $layer = shift;
+ my $html = qq!<INPUT TYPE="hidden" NAME="exporttype" VALUE="$layer">!.
+ ntable("#cccccc",2);
+ foreach my $option ( keys %{$exports{$svcdb}->{$layer}{options}} ) {
+# foreach my $option ( qw(url login password groupID ) ) {
+ my $optinfo = $exports{$svcdb}->{$layer}{options}{$option};
+ my $label = $optinfo->{label};
+ my $value = $part_export->option($option);
+ $html .= qq!<TR><TD ALIGN="right">$label</TD><TD>!.
+ qq!<TD><INPUT TYPE="text" NAME="$option" VALUE="$value"></TD>!.
+ '</TR>';
+ }
+ $html .= '</TABLE>';
+
+ $html .= '<INPUT TYPE="hidden" NAME="options" VALUE="'.
+ join(',', keys %{$exports{$svcdb}->{$layer}{options}} ). '">';
+
+ $html .= '<INPUT TYPE="hidden" NAME="nodomain" VALUE="'.
+ $exports{$svcdb}->{$layer}{nodomain}. '">';
+
+ $html .= '<INPUT TYPE="submit" VALUE="'.
+ ( $part_export->exportnum ? "Apply changes" : "Add export" ).
+ '">';
+
+ $html;
+ },
+);
%>
<%= header("$action Export", menubar(
@@ -46,35 +151,30 @@ my @types = qw(shell bsdshell textradius sqlradius cp);
%>
<% if ( $cgi->param('error') ) { %>
-<FONT SIZE="+1" COLOR="#ff0000">Error: <%= $cgi->param('error') %></FONT>
+ <FONT SIZE="+1" COLOR="#ff0000">Error: <%= $cgi->param('error') %></FONT>
+ <BR><BR>
<% } %>
-<FORM ACTION="<%= popurl(1) %>process/part_export.cgi" METHOD=POST>
-<% #print '<FORM NAME="dummy">'; %>
+<FORM NAME="dummy">
+<INPUT TYPE="hidden" NAME="exportnum" VALUE="<%= $part_export->exportnum %>">
<%= ntable("#cccccc",2) %>
<TR>
<TD ALIGN="right">Service</TD>
<TD BGCOLOR="#ffffff">
<%= $part_export->svcpart %> - <%= $part_export->part_svc->svc %>
+ <INPUT TYPE="hidden" NAME="svcpart" VALUE="<%= $part_export->svcpart %>">
</TD>
</TR>
<TR>
- <TD ALIGN="right">Export</TD>
- <TD><SELECT NAME="exporttype"><OPTION></OPTION>
-<% foreach my $type ( @types ) { %>
- <OPTION><%= $type %></OPTION>
-<% } %>
- </SELECT></TD>
-</TR>
-<TR>
<TD ALIGN="right">Export host</TD>
<TD>
<INPUT TYPE="text" NAME="machine" VALUE="<%= $part_export->machine %>">
</TD>
</TR>
-</TABLE>
-</FORM>
+<TR>
+ <TD ALIGN="right">Export</TD>
+ <TD><%= $widget->html %>
</BODY>
</HTML>