Difference between revisions of "Freeside:3:Documentation:Developer/FS/UID"
m (Edit via perl MediaWiki framework (1.13)) |
m (Edit via perl MediaWiki framework (1.13)) |
||
Line 4: | Line 4: | ||
==SYNOPSIS== | ==SYNOPSIS== | ||
<code> | <code> | ||
− | use FS::UID qw(adminsuidsetup | + | use FS::UID qw(adminsuidsetup dbh datasrc checkeuid checkruid); |
− | |||
− | + | $dbh = adminsuidsetup $user; | |
− | |||
− | |||
− | $dbh = | ||
$dbh = dbh; | $dbh = dbh; | ||
Line 23: | Line 19: | ||
==SUBROUTINES== | ==SUBROUTINES== | ||
; adminsuidsetup USER | ; 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 | + | :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. Runs any defined callbacks (see below). Returns the DBI database handle (usually you don't need this). |
; install_callback | ; 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. | :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. | ||
Line 34: | Line 30: | ||
}; | }; | ||
</code> | </code> | ||
− | |||
− | |||
; cgi | ; cgi | ||
:Returns the CGI (see [[Freeside:3:Documentation:Developer/CGI|CGI]]) object. | :Returns the CGI (see [[Freeside:3:Documentation:Developer/CGI|CGI]]) object. | ||
+ | ; cgi CGI_OBJECT | ||
+ | :Sets the CGI (see [[Freeside:3:Documentation:Developer/CGI|CGI]]) object. | ||
; dbh | ; dbh | ||
:Returns the DBI database handle. | :Returns the DBI database handle. | ||
Line 45: | Line 41: | ||
:Returns just the driver name portion of the DBI data source. | :Returns just the driver name portion of the DBI data source. | ||
; getotaker | ; getotaker | ||
− | :Returns the current Freeside user | + | :(Deprecated) Returns the current Freeside user's username. |
− | |||
− | |||
; checkeuid | ; checkeuid | ||
:Returns true if effective UID is that of the freeside user. | :Returns true if effective UID is that of the freeside user. | ||
; checkruid | ; checkruid | ||
:Returns true if the real UID is that of the freeside user. | :Returns true if the real UID is that of the freeside user. | ||
− | ; getsecrets | + | ; getsecrets |
− | : | + | :Sets and returns the DBI datasource, username and password from the `/usr/local/etc/freeside/secrets' file. |
; use_confcompat | ; use_confcompat | ||
:Returns true whenever we should use 1.7 configuration compatibility. | :Returns true whenever we should use 1.7 configuration compatibility. | ||
Line 85: | Line 79: | ||
Not OO. | Not OO. | ||
− | No capabilities yet. | + | No capabilities yet. (What does this mean again?) |
Goes through contortions to support non-OO syntax with multiple datasrc's. | Goes through contortions to support non-OO syntax with multiple datasrc's. |
Revision as of 12:02, 30 March 2015
NAME
FS::UID - Subroutines for database login and assorted other stuff
SYNOPSIS
use FS::UID qw(adminsuidsetup dbh datasrc checkeuid checkruid); $dbh = adminsuidsetup $user; $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. 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!" };
- cgi
- Returns the CGI (see CGI) object.
- cgi CGI_OBJECT
- Sets 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
- (Deprecated) Returns the current Freeside user's username.
- 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
- Sets and returns the DBI datasource, username and password from the `/usr/local/etc/freeside/secrets' 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. (What does this mean again?)
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.