Freeside:3:Documentation:Developer/FS/UID
NAME
FS::UID - Subroutines for database login and assorted other stuff
SYNOPSIS
use FS::UID qw(adminsuidsetup cgisuidsetup dbh datasrc getotaker checkeuid checkruid); adminsuidsetup $user; $cgi = new CGI; $dbh = cgisuidsetup($cgi); $dbh = dbh; $datasrc = datasrc; $driver_name = driver_name;
DESCRIPTION
Provides a hodgepodge of subroutines.
SUBROUTINES
- adminsuidsetup USER
- Sets the user to USER (see config.html from the base documentation). Cleans the environment. Make sure the script is running as freeside, or setuid freeside. Opens a connection to the database. Swaps real and effective UIDs. Runs any defined callbacks (see below). Returns the DBI database handle (usually you don't need this).
- install_callback
- A package can install a callback to be run in adminsuidsetup by passing a coderef to the FS::UID->install_callback class method. If adminsuidsetup has run already, the callback will also be run immediately.
$coderef = sub { warn "Hi, I'm returning your call!" }; FS::UID->install_callback($coderef); install_callback FS::UID sub { warn "Hi, I'm returning your call!" };
- cgisuidsetup CGI_object
- Takes a single argument, which is a CGI (see CGI) or Apache (see Apache) object (CGI::Base is depriciated). Runs cgisetotaker and then adminsuidsetup.
- cgi
- Returns the CGI (see CGI) object.
- dbh
- Returns the DBI database handle.
- datasrc
- Returns the DBI data source.
- driver_name
- Returns just the driver name portion of the DBI data source.
- getotaker
- Returns the current Freeside user.
- cgisetotaker
- Sets and returns the CGI REMOTE_USER. $cgi should be defined as a CGI.pm object (see CGI) or an Apache object (see Apache). Support for CGI::Base and derived classes is depriciated.
- checkeuid
- Returns true if effective UID is that of the freeside user.
- checkruid
- Returns true if the real UID is that of the freeside user.
- getsecrets [ USER ]
- Sets the user to USER, if supplied. Sets and returns the DBI datasource, username and password for this user from the `/usr/local/etc/freeside/mapsecrets' file.
- use_confcompat
- Returns true whenever we should use 1.7 configuration compatibility.
CALLBACKS
Warning: this interface is (still) likely to change in future releases.
New (experimental) callback interface:
A package can install a callback to be run in adminsuidsetup by passing a coderef to the FS::UID->install_callback class method. If adminsuidsetup has run already, the callback will also be run immediately.
$coderef = sub { warn "Hi, I'm returning your call!" }; FS::UID->install_callback($coderef); install_callback FS::UID sub { warn "Hi, I'm returning your call!" };
Old (deprecated) callback interface:
A package can install a callback to be run in adminsuidsetup by putting a coderef into the hash %FS::UID::callback :
$coderef = sub { warn "Hi, I'm returning your call!" }; $FS::UID::callback{'Package::Name'} = $coderef;
BUGS
Too many package-global variables.
Not OO.
No capabilities yet. When mod_perl and Authen::DBI are implemented, cgisuidsetup will go away as well.
Goes through contortions to support non-OO syntax with multiple datasrc's.
Callbacks are (still) inelegant.
SEE ALSO
FS::Record, CGI, DBI, config.html from the base documentation.