summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorivan <ivan>2002-03-21 06:57:20 +0000
committerivan <ivan>2002-03-21 06:57:20 +0000
commit415150fe1997eb2688dfd492710f644574e29daf (patch)
treea13a70ee3469bc61e8e63a805536c15b3685088d
parentf1038a648b3d53db925b23519e7cd2a30c6837ed (diff)
more for the new world of export...
-rw-r--r--FS/FS/part_export.pm119
-rw-r--r--httemplate/edit/part_export.cgi2
-rw-r--r--httemplate/edit/process/part_export.cgi18
3 files changed, 70 insertions, 69 deletions
diff --git a/FS/FS/part_export.pm b/FS/FS/part_export.pm
index 444e86a..59024f6 100644
--- a/FS/FS/part_export.pm
+++ b/FS/FS/part_export.pm
@@ -22,7 +22,7 @@ FS::part_export - Object methods for part_export records
($new_record, $options) = $template_recored->clone( $svcpart );
$error = $record->insert( { 'option' => 'value' } );
- $error = $record->insert( \$options );
+ $error = $record->insert( \%options );
$error = $new_record->replace($old_record);
@@ -226,6 +226,15 @@ sub replace {
}
}
+ #remove extraneous old options? not necessary now, but...
+ #foreach my $opt ( grep { !exist $options->{$_->optionname} } $old->part_export_option ) {
+ # my $error = $opt->delete;
+ # if ( $error ) {
+ # $dbh->rollback if $oldAutoCommit;
+ # return $error;
+ # }
+ #}
+
$dbh->commit or die $dbh->errstr if $oldAutoCommit;
'';
@@ -320,8 +329,6 @@ sub rebless {
=item export_insert SVC_OBJECT
-Calls the appropriate export_I<exporttype> for this object's exporttype.
-
=cut
sub export_insert {
@@ -361,6 +368,8 @@ sub export_delete {
=back
+=cut
+
#infostreet
package FS::part_export::infostreet;
@@ -423,7 +432,7 @@ sub infostreet_command { #subroutine, not method
die $key_result{error} unless $key_result{success};
my $key = $key_result{data};
- my $result = $conn->call($opt{method}, $key, @{$opt{args}});
+ my $result = $conn->call($method, $key, @args);
my %result = _infostreet_parse($result);
die $result{error} unless $result{success};
@@ -470,10 +479,10 @@ sub _export_replace {
my %new = $new->$method;
my %old = $old->$method;
if ( grep { !exists $old{$_} #new attributes
- || $new{$n} ne $old{$n} #changed
+ || $new{$_} ne $old{$_} #changed
} keys %new
) {
- my $error = $self->sqlradius_queue( $new->svcnum, 'insert'
+ my $error = $self->sqlradius_queue( $new->svcnum, 'insert',
$table, $new->username, %new );
return $error if $error;
}
@@ -488,9 +497,9 @@ sub _export_replace {
}
sub _export_delete {
- my( $self, $svc_something ) = (shift, shift);
+ my( $self, $svc_acct ) = (shift, shift);
$self->sqlradius_queue( $svc_acct->svcnum, 'delete',
- $svc_something->username );
+ $svc_acct->username );
}
sub sqlradius_queue {
@@ -543,10 +552,10 @@ sub sqlradius_attrib_delete { #subroutine, not method
foreach my $attribute ( @attrib ) {
my $sth = $dbh->prepare(
- "DELETE FROM $table WHERE UserName = ? AND Attribute = ?" )
+ "DELETE FROM rad$replycheck WHERE UserName = ? AND Attribute = ?" )
or die $dbh->errstr;
$sth->execute($username,$attribute)
- or die "can't delete from $table table: ". $sth->errstr;
+ or die "can't delete from rad$replycheck table: ". $sth->errstr;
}
$dbh->disconnect;
}
@@ -569,53 +578,51 @@ sub sqlradius_connect {
DBI->connect(@_) or die $DBI::errstr;
}
-=head1 NOTES
-
-Writing a new export class:
-
-#myexport
-
-package FS::part_export::myexport;
-use vars qw(@ISA);
-@ISA = qw(FS::part_export);
-
-sub _export_insert {
- my($self, $svc_something) = (shift, shift);
- $self->myexport_queue( $svc_acct->svcnum, 'insert',
- $svc_something->username, $svc_something->password );
-}
-
-sub _export_replace {
- my( $self, $new, $old ) = (shift, shift, shift);
- #return "can't change username with myexport"
- # if $old->username ne $new->username;
- #return '' unless $old->_password ne $new->_password;
- $self->myexport_queue( $new->svcnum,
- 'replace', $new->username, $new->password );
-}
-
-sub _export_delete {
- my( $self, $svc_something ) = (shift, shift);
- $self->myexport_queue( $svc_acct->svcnum,
- 'delete', $svc_something->username );
-}
-
-#a good idea to queue anything that could fail or take any time
-sub myexport_queue {
- my( $self, $svcnum, $method ) = (shift, shift, shift);
- my $queue = new FS::queue {
- 'svcnum' => $svcnum,
- 'job' => "FS::part_export::myexport::myexport_$method",
- };
- $queue->insert( @_ );
-}
+=head1 NEW EXPORT CLASSES
-sub myexport_insert { #subroutine, not method
-}
-sub myexport_replace { #subroutine, not method
-}
-sub myexport_delete { #subroutine, not method
-}
+ #myexport
+
+ package FS::part_export::myexport;
+ use vars qw(@ISA);
+ @ISA = qw(FS::part_export);
+
+ sub _export_insert {
+ my($self, $svc_something) = (shift, shift);
+ $self->myexport_queue( $svc_acct->svcnum, 'insert',
+ $svc_something->username, $svc_something->password );
+ }
+
+ sub _export_replace {
+ my( $self, $new, $old ) = (shift, shift, shift);
+ #return "can't change username with myexport"
+ # if $old->username ne $new->username;
+ #return '' unless $old->_password ne $new->_password;
+ $self->myexport_queue( $new->svcnum,
+ 'replace', $new->username, $new->password );
+ }
+
+ sub _export_delete {
+ my( $self, $svc_something ) = (shift, shift);
+ $self->myexport_queue( $svc_acct->svcnum,
+ 'delete', $svc_something->username );
+ }
+
+ #a good idea to queue anything that could fail or take any time
+ sub myexport_queue {
+ my( $self, $svcnum, $method ) = (shift, shift, shift);
+ my $queue = new FS::queue {
+ 'svcnum' => $svcnum,
+ 'job' => "FS::part_export::myexport::myexport_$method",
+ };
+ $queue->insert( @_ );
+ }
+
+ sub myexport_insert { #subroutine, not method
+ }
+ sub myexport_replace { #subroutine, not method
+ }
+ sub myexport_delete { #subroutine, not method
+ }
=head1 BUGS
diff --git a/httemplate/edit/part_export.cgi b/httemplate/edit/part_export.cgi
index a44bd39..7ba6fa1 100644
--- a/httemplate/edit/part_export.cgi
+++ b/httemplate/edit/part_export.cgi
@@ -70,7 +70,7 @@ my %exports = (
'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.',
+ 'notes' => 'Not specifying datasrc will export to the freeside database? (no... notes on MySQL replication, DBI::Proxy, etc., from Conf.pm && export.html etc.',
},
'cyrus' => {
'desc' => 'Real-time export to Cyrus IMAP server',
diff --git a/httemplate/edit/process/part_export.cgi b/httemplate/edit/process/part_export.cgi
index 8160527..b4ce0b3 100644
--- a/httemplate/edit/process/part_export.cgi
+++ b/httemplate/edit/process/part_export.cgi
@@ -1,7 +1,5 @@
<%
-my $dbh = dbh;
-
my $exportnum = $cgi->param('exportnum');
my $old = qsearchs('part_export', { 'exportnum'=>$exportnum } ) if $exportnum;
@@ -26,21 +24,17 @@ local $FS::UID::AutoCommit = 0;
my $error;
if ( $exportnum ) {
- $error = $new->replace($old);
+ $error = $new->replace($old,\%options);
} else {
- $error = $new->insert;
- $exportnum = $new->exportnum;
+ $error = $new->insert,\%options);
+# $exportnum = $new->exportnum;
}
+
if ( $error ) {
- $dbh->rollback;
$cgi->param('error', $error );
print $cgi->redirect(popurl(2). "part_export.cgi?". $cgi->query_string );
- myexit();
+} else {
+ print $cgi->redirect(popurl(3). "browse/part_svc.cgi");
}
-#options
-
-$dbh->commit or die $dbh->errstr;
-print $cgi->redirect(popurl(3). "browse/part_svc.cgi");
-
%>