From f1038a648b3d53db925b23519e7cd2a30c6837ed Mon Sep 17 00:00:00 2001 From: ivan Date: Wed, 20 Mar 2002 21:31:49 +0000 Subject: 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) --- httemplate/docs/export.html | 1 + httemplate/docs/upgrade8.html | 6 ++ httemplate/edit/part_export.cgi | 130 ++++++++++++++++++++++++++++---- httemplate/edit/process/part_export.cgi | 3 + 4 files changed, 125 insertions(+), 15 deletions(-) (limited to 'httemplate') diff --git a/httemplate/docs/export.html b/httemplate/docs/export.html index c7f1b4c9e..71e3acf1f 100755 --- a/httemplate/docs/export.html +++ b/httemplate/docs/export.html @@ -3,6 +3,7 @@

File exporting

+ NOTE: This file is OUT OF DATE with the landing of the new export code and is only here for reference. DO NOT follow these instructions. Instead use the new exports in the web interface. diff --git a/httemplate/edit/part_export.cgi b/httemplate/edit/part_export.cgi index ffce0438f..a44bd39d5 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' => "\n", + 'layer_callback' => sub { + my $layer = shift; + my $html = qq!!. + 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!$label!. + qq!!. + ''; + } + $html .= ''; + + $html .= ''; + + $html .= ''; + + $html .= ''; + + $html; + }, +); %> <%= header("$action Export", menubar( @@ -46,35 +151,30 @@ my @types = qw(shell bsdshell textradius sqlradius cp); %> <% if ( $cgi->param('error') ) { %> -Error: <%= $cgi->param('error') %> + Error: <%= $cgi->param('error') %> +

<% } %> -
-<% #print ''; %> + + <%= ntable("#cccccc",2) %> Service <%= $part_export->svcpart %> - <%= $part_export->part_svc->svc %> + - - Export - - Export host - -
+ + Export + <%= $widget->html %> diff --git a/httemplate/edit/process/part_export.cgi b/httemplate/edit/process/part_export.cgi index 9ee1c5974..8160527f6 100644 --- a/httemplate/edit/process/part_export.cgi +++ b/httemplate/edit/process/part_export.cgi @@ -6,6 +6,9 @@ my $exportnum = $cgi->param('exportnum'); my $old = qsearchs('part_export', { 'exportnum'=>$exportnum } ) if $exportnum; +#fixup options +my %options = map { $_=>$cgi->param($_) } $cgi->param('options'); + my $new = new FS::part_export ( { map { $_, scalar($cgi->param($_)); -- cgit v1.2.1