X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2FUID.pm;h=890e2988a1618bc11d23243fd47a30014a065a99;hb=bcb172a6ea2b9f3e645eed81896f960151267bf5;hp=f5c4f6139102a0295860793abffa6ae188eb0e0c;hpb=ece31063b782031e21ba1f57476afab555af5363;p=freeside.git diff --git a/FS/FS/UID.pm b/FS/FS/UID.pm index f5c4f6139..890e2988a 100644 --- a/FS/FS/UID.pm +++ b/FS/FS/UID.pm @@ -15,8 +15,8 @@ use DBI; use FS::Conf; @ISA = qw(Exporter); -@EXPORT_OK = qw(checkeuid checkruid swapuid cgisuidsetup - adminsuidsetup getotaker dbh datasrc getsecrets driver_name ); +@EXPORT_OK = qw(checkeuid checkruid cgisuidsetup adminsuidsetup forksuidsetup + getotaker dbh datasrc getsecrets driver_name ); $freeside_uid = scalar(getpwnam('freeside')); @@ -31,7 +31,7 @@ FS::UID - Subroutines for database login and assorted other stuff =head1 SYNOPSIS use FS::UID qw(adminsuidsetup cgisuidsetup dbh datasrc getotaker - checkeuid checkruid swapuid); + checkeuid checkruid); adminsuidsetup $user; @@ -65,7 +65,11 @@ Returns the DBI database handle (usually you don't need this). =cut sub adminsuidsetup { + $dbh->disconnect if $dbh; + &forksuidsetup(@_); +} +sub forksuidsetup { $user = shift; croak "fatal: adminsuidsetup called without arguements" unless $user; @@ -78,14 +82,11 @@ sub adminsuidsetup { croak "Not running uid freeside!" unless checkeuid(); getsecrets; - $dbh->disconnect if $dbh; $dbh = DBI->connect($datasrc,$db_user,$db_pass, { 'AutoCommit' => 0, 'ChopBlanks' => 1, } ) or die "DBI->connect error: $DBI::errstr\n"; - swapuid(); #go to non-privledged user if running setuid freeside - foreach ( keys %callback ) { &{$callback{$_}}; } @@ -186,7 +187,8 @@ sub cgisetotaker { } elsif ( $cgi && $cgi->isa('Apache') ) { $user = lc ( $cgi->connection->user ); } else { - die "fatal: Can't get REMOTE_USER! for cgi $cgi"; + die "fatal: Can't get REMOTE_USER! for cgi $cgi - you need to setup ". + "Apache user authentication as documented in httemplate/docs/config.html"; } $user; } @@ -211,16 +213,6 @@ sub checkruid { ( $< == $freeside_uid ); } -=item swapuid - -Swaps real and effective UIDs. - -=cut - -sub swapuid { - ($<,$>) = ($>,$<) if $< != $>; -} - =item getsecrets [ USER ] Sets the user to USER, if supplied. @@ -260,7 +252,7 @@ coderef into the hash %FS::UID::callback : =head1 VERSION -$Id: UID.pm,v 1.6 2001-04-23 09:00:06 ivan Exp $ +$Id: UID.pm,v 1.11 2001-11-06 17:58:08 ivan Exp $ =head1 BUGS