diff options
author | ivan <ivan> | 2002-03-20 21:31:49 +0000 |
---|---|---|
committer | ivan <ivan> | 2002-03-20 21:31:49 +0000 |
commit | f1038a648b3d53db925b23519e7cd2a30c6837ed (patch) | |
tree | cda6c30496db688ed3fd702d111a76bc2c6d2e82 /httemplate/edit/part_export.cgi | |
parent | 74f795a943560dfc03f46642536386ce36355bb4 (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.cgi | 130 |
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> |