projects
/
freeside.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
finish at least the automatic provisioning part
[freeside.git]
/
FS
/
FS
/
UID.pm
diff --git
a/FS/FS/UID.pm
b/FS/FS/UID.pm
index
f670051
..
21df944
100644
(file)
--- a/
FS/FS/UID.pm
+++ b/
FS/FS/UID.pm
@@
-13,10
+13,11
@@
use Exporter;
use Carp qw(carp croak cluck);
use DBI;
use FS::Conf;
use Carp qw(carp croak cluck);
use DBI;
use FS::Conf;
+use FS::CurrentUser;
@ISA = qw(Exporter);
@EXPORT_OK = qw(checkeuid checkruid cgisuidsetup adminsuidsetup forksuidsetup
@ISA = qw(Exporter);
@EXPORT_OK = qw(checkeuid checkruid cgisuidsetup adminsuidsetup forksuidsetup
- getotaker dbh datasrc getsecrets driver_name );
+ getotaker dbh datasrc getsecrets driver_name
myconnect
);
$freeside_uid = scalar(getpwnam('freeside'));
$freeside_uid = scalar(getpwnam('freeside'));
@@
-84,11
+85,14
@@
sub forksuidsetup {
$ENV{'BASH_ENV'} = '';
croak "Not running uid freeside!" unless checkeuid();
$ENV{'BASH_ENV'} = '';
croak "Not running uid freeside!" unless checkeuid();
- getsecrets;
- $dbh = DBI->connect($datasrc,$db_user,$db_pass, {
- 'AutoCommit' => 0,
- #'ChopBlanks' => 1,
- } ) or die "DBI->connect error: $DBI::errstr\n";
+
+ $dbh = &myconnect;
+
+ use FS::Schema qw(reload_dbdef);
+ reload_dbdef("/usr/local/etc/freeside/dbdef.$datasrc")
+ unless $FS::Schema::setup_hack;
+
+ FS::CurrentUser->load_user($user);
foreach ( keys %callback ) {
&{$callback{$_}};
foreach ( keys %callback ) {
&{$callback{$_}};
@@
-100,6
+104,15
@@
sub forksuidsetup {
$dbh;
}
$dbh;
}
+sub myconnect {
+ DBI->connect( getsecrets, { 'AutoCommit' => 0,
+ 'ChopBlanks' => 1,
+ 'ShowErrorStatement' => 1,
+ }
+ )
+ or die "DBI->connect error: $DBI::errstr\n";
+}
+
=item install_callback
A package can install a callback to be run in adminsuidsetup by passing
=item install_callback
A package can install a callback to be run in adminsuidsetup by passing
@@
-254,13
+267,13
@@
sub getsecrets {
$user = $setuser if $setuser;
die "No user!" unless $user;
my($conf) = new FS::Conf $conf_dir;
$user = $setuser if $setuser;
die "No user!" unless $user;
my($conf) = new FS::Conf $conf_dir;
- my($line) = grep /^\s*
$user
\s/, $conf->config('mapsecrets');
+ my($line) = grep /^\s*
($user|\*)
\s/, $conf->config('mapsecrets');
die "User $user not found in mapsecrets!" unless $line;
die "User $user not found in mapsecrets!" unless $line;
- $line =~ /^\s*
$user
\s+(.*)$/;
- $secrets = $
1
;
+ $line =~ /^\s*
($user|\*)
\s+(.*)$/;
+ $secrets = $
2
;
die "Illegal mapsecrets line for user?!" unless $secrets;
($datasrc, $db_user, $db_pass) = $conf->config($secrets)
die "Illegal mapsecrets line for user?!" unless $secrets;
($datasrc, $db_user, $db_pass) = $conf->config($secrets)
- or die "Can't get secrets: $
!
";
+ or die "Can't get secrets: $
secrets: $!\n
";
$FS::Conf::default_dir = $conf_dir. "/conf.$datasrc";
undef $driver_name;
($datasrc, $db_user, $db_pass);
$FS::Conf::default_dir = $conf_dir. "/conf.$datasrc";
undef $driver_name;
($datasrc, $db_user, $db_pass);