use vars qw(
@EXPORT_OK $DEBUG $me $cgi $freeside_uid $conf_dir $cache_dir
$secrets $datasrc $db_user $db_pass $schema $dbh $driver_name
- $AutoCommit %callback @callback $callback_hack
+ $AutoCommit $ForceObeyAutoCommit %callback @callback $callback_hack
);
use subs qw( getsecrets );
use Carp qw( carp croak cluck confess );
-use DBI;
+use FS::DBI;
use IO::File;
use FS::CurrentUser;
@EXPORT_OK = qw( checkeuid checkruid cgi setcgi adminsuidsetup forksuidsetup
- preuser_setup
+ preuser_setup load_schema
getotaker dbh datasrc getsecrets driver_name myconnect
);
$conf_dir = "%%%FREESIDE_CONF%%%";
$cache_dir = "%%%FREESIDE_CACHE%%%";
+# Code wanting to issue a COMMIT statement to the database is expected to
+# obey the convention of checking this flag first. Setting $AutoCommit = 0
+# should (usually) suppress COMMIT statements.
$AutoCommit = 1; #ours, not DBI
+
+# Not all methods obey $AutoCommit, by design choice. Setting
+# $ForceObeyAutoCommit = 1 will override that design choice for:
+# &FS::cust_main::Billing::collect
+# &FS::cust_main::Billing::do_cust_event
+$ForceObeyAutoCommit = 0;
+
$callback_hack = 0;
=head1 NAME
}
+sub load_schema {
+ warn "$me loading schema\n" if $DEBUG;
+ getsecrets() unless $datasrc;
+ use FS::Schema qw(reload_dbdef dbdef);
+ reload_dbdef("$conf_dir/dbdef.$datasrc")
+ unless $FS::Schema::setup_hack;
+}
+
sub db_setup {
croak "Not running uid freeside (\$>=$>, \$<=$<)\n" unless checkeuid();
warn "$me forksuidsetup connected to database with handle $dbh\n" if $DEBUG;
- warn "$me forksuidsetup loading schema\n" if $DEBUG;
- use FS::Schema qw(reload_dbdef dbdef);
- reload_dbdef("$conf_dir/dbdef.$datasrc")
- unless $FS::Schema::setup_hack;
+ load_schema();
warn "$me forksuidsetup deciding upon config system to use\n" if $DEBUG;
}
sub myconnect {
- my $handle = DBI->connect( getsecrets(), { 'AutoCommit' => 0,
- 'ChopBlanks' => 1,
- 'ShowErrorStatement' => 1,
- 'pg_enable_utf8' => 1,
- #'mysql_enable_utf8' => 1,
- }
- )
- or die "DBI->connect error: $DBI::errstr\n";
+ my $handle = FS::DBI->connect(
+ getsecrets(),
+ {
+ 'AutoCommit' => 0,
+ 'ChopBlanks' => 1,
+ 'ShowErrorStatement' => 1,
+ 'pg_enable_utf8' => 1,
+ # 'mysql_enable_utf8' => 1,
+ }
+ ) or die "FS::DBI->connect error: $FS::DBI::errstr\n";
$FS::Conf::conf_cache = undef;
=item cgi
-Returns the CGI (see L<CGI>) object.
+(Deprecated) Returns the CGI (see L<CGI>) object.
=cut
$cgi;
}
-=item cgi CGI_OBJECT
+=item setcgi CGI_OBJECT
-Sets the CGI (see L<CGI>) object.
+(Deprecated) Sets the CGI (see L<CGI>) object.
=cut