argh, don't load up a user until the other initialization is done
authorivan <ivan>
Tue, 4 Mar 2008 01:49:49 +0000 (01:49 +0000)
committerivan <ivan>
Tue, 4 Mar 2008 01:49:49 +0000 (01:49 +0000)
FS/FS/UID.pm

index 065db61..613ff44 100644 (file)
@@ -2,7 +2,7 @@ package FS::UID;
 
 use strict;
 use vars qw(
-  @ISA @EXPORT_OK $cgi $dbh $freeside_uid $user 
+  @ISA @EXPORT_OK $DEBUG $me $cgi $dbh $freeside_uid $user 
   $conf_dir $secrets $datasrc $db_user $db_pass %callback @callback
   $driver_name $AutoCommit $callback_hack $use_confcompat
 );
@@ -20,6 +20,9 @@ use FS::CurrentUser;
                 getotaker dbh datasrc getsecrets driver_name myconnect
                 use_confcompat);
 
+$DEBUG = 0;
+$me = '[FS::UID]';
+
 $freeside_uid = scalar(getpwnam('freeside'));
 
 $conf_dir = "%%%FREESIDE_CONF%%%";
@@ -76,6 +79,7 @@ sub adminsuidsetup {
 sub forksuidsetup {
   $user = shift;
   my $olduser = $user;
+  warn "$me forksuidsetup starting for $user\n" if $DEBUG;
 
   if ( $FS::CurrentUser::upgrade_hack ) {
     $user = 'fs_bootstrap';
@@ -95,39 +99,46 @@ sub forksuidsetup {
 
   croak "Not running uid freeside!" unless checkeuid();
 
+  warn "$me forksuidsetup connecting to database\n" if $DEBUG;
   if ( $FS::CurrentUser::upgrade_hack && $olduser ) {
     $dbh = &myconnect($olduser);
   } else {
     $dbh = &myconnect();
   }
+  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);
   reload_dbdef("$conf_dir/dbdef.$datasrc")
     unless $FS::Schema::setup_hack;
 
-  FS::CurrentUser->load_user($user);
+  warn "$me forksuidsetup deciding upon config system to use\n" if $DEBUG;
 
-  if ($dbh && ! $callback_hack) {
-    my $sth = $dbh->prepare("SELECT COUNT(*) FROM conf") or die $dbh->errstr;
-    $sth->execute or die $sth->errstr;
-    my $confcount = $sth->fetchrow_arrayref->[0];
+  my $sth = $dbh->prepare("SELECT COUNT(*) FROM conf") or die $dbh->errstr;
+  $sth->execute or die $sth->errstr;
+  my $confcount = $sth->fetchrow_arrayref->[0];
 
-    if ($confcount) {
-      $use_confcompat = 0;
-    }else{
-      warn "NO CONFIGURATION RECORDS FOUND";
-    }
+  if ($confcount) {
+    $use_confcompat = 0;
+  }else{
+    warn "NO CONFIGURATION RECORDS FOUND";
   }
 
-  unless($callback_hack) {
+  unless ( $callback_hack ) {
+    warn "$me calling callbacks\n" if $DEBUG;
     foreach ( keys %callback ) {
       &{$callback{$_}};
       # breaks multi-database installs # delete $callback{$_}; #run once
     }
 
     &{$_} foreach @callback;
+  } else {
+    warn "$me skipping callbacks (callback_hack set)\n" if $DEBUG;
   }
 
+  warn "$me forksuidsetup loading user\n" if $DEBUG;
+  FS::CurrentUser->load_user($user);
+
   $dbh;
 }