Apache-iNcom
view release on metacpan or search on metacpan
lib/Apache/iNcom/Request.pm view on Meta::CPAN
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
package Apache::iNcom::Request;
use strict;
use Apache::Util;
use Apache::iNcom::CartManager;
use Apache::iNcom::OrderManager;
use Apache::iNcom::Localizer;
use DBIx::SearchProfiles;
use DBIx::UserDB;
use HTML::FormValidator;
use Symbol;
use vars qw( @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS $VERSION );
use Carp;
BEGIN {
use Exporter;
@ISA = qw( Exporter );
@EXPORT = ();
@EXPORT_OK = ();
%EXPORT_TAGS = (); # This is filled later near the
# declaration of global variables
($VERSION) = '$Revision: 1.15 $' =~ /Revision: ([\d.]+)/;
}
=pod
=head1 NAME
Apache::iNcom::Request - Manages the Apache::iNcom request's informations.
=head1 SYNOPSIS
my $user = $Request->user
etc.
=head1 DESCRIPTION
This module is responsible for managing the environment in which the
Apache::iNcom page will execute. It setups all the objects that will
be accessible to the pages through globals and also provides the
page with a bunch of utility functions. It also provides a bunch
of methods for managing the information associated with the request.
=head1 INITIALIZATION
An object is automatically initialized on each request by the
Apache::iNcom framework. It is accessible through the $Request global
variable in Apache::iNcom pages.
=cut
sub new {
my $proto = shift;
my $class = ref $proto || $proto;
my $req_rec = shift;
my $package = shift;
my $self = { req_rec => $req_rec,
package => $package,
};
bless $self, $class;
$self->{session} = $req_rec->pnotes( "INCOM_SESSION" );
$self->{dbh} = $req_rec->pnotes( "INCOM_DBH" );
my $root = $req_rec->dir_config( "INCOM_ROOT" );
$root = $req_rec->server_root_relative( $root );
my ($current) = $req_rec->filename =~ m!^$root/*(.*)!;
$self->{current_page} = $current;
$self->{last_page} = $self->{session}{_incom_last_page};
# Save current for next session
$self->{session}{_incom_last_page} = $current;
# Setup the database object
my $sql_profile = $req_rec->dir_config( "INCOM_SEARCH_PROFILE" )
|| "conf/search_profiles.pl";
unless ( $sql_profile eq "NONE" ) {
$sql_profile = $req_rec->server_root_relative( $sql_profile );
$self->{database} = new DBIx::SearchProfiles( $self->{dbh},
$sql_profile );
# Setup the UserDB object
my $userdb_tmpl = $req_rec->dir_config( "INCOM_USERDB_PROFILE" );
unless ( $userdb_tmpl eq "NONE" ) {
$self->{userdb} = new DBIx::UserDB( $self->{database},
$userdb_tmpl,
$req_rec->dir_config( "INCOM_GROUPDB_PROFILE" ) );
my $scramble = $req_rec->dir_config( "INCOM_SCRAMBLE_PASSWORD" );
if ( defined $scramble ) {
$scramble = $scramble =~ /t(rue)?|1|on|y(es)?/i;
$self->{userdb}->scramble_password( $scramble );
}
# Load it if the user has logged into this session
if ( exists $self->{session}{_incom_logged_in} ) {
$self->{user} =
$self->{userdb}->user_get( $self->{session}{_incom_logged_in} );
}
}
}
# Setup validator object
my $input_profile = $req_rec->dir_config( "INCOM_INPUT_PROFILE" )
|| "conf/input_profiles.pl";
( run in 0.733 second using v1.01-cache-2.11-cpan-df04353d9ac )