diff --git a/lib/WebGUI/SQL.pm b/lib/WebGUI/SQL.pm index b66ffeb86..58e4239b6 100644 --- a/lib/WebGUI/SQL.pm +++ b/lib/WebGUI/SQL.pm @@ -15,14 +15,11 @@ package WebGUI::SQL; =cut use DBI; -use Exporter; use strict; use Tie::IxHash; +use WebGUI::SQL::Resultset; use WebGUI::Utility; -our @ISA = qw(Exporter); -our @EXPORT = qw("e &getNextId "eAndJoin); - =head1 NAME Package WebGUI::SQL @@ -35,7 +32,7 @@ Package for interfacing with SQL databases. This package implements Perl DBI fun use WebGUI::SQL; - $db = $self->session->db->connect($dsn, $user, $pass, $session); + $db = WebGUI::SQL->connect($session,$dsn, $user, $pass); $db->disconnect; $sth = $db->prepare($sql); @@ -61,8 +58,8 @@ Package for interfacing with SQL databases. This package implements Perl DBI fun $dbh = $db->getSlave; $id = $db->getNextId("someId"); - $string = $db->$self->session->db->quote($string); - $string = $db->$self->session->db->quoteAndJoin(\@array); + $string = $db->quote($string); + $string = $db->quoteAndJoin(\@array); =head1 METHODS @@ -270,7 +267,7 @@ The value to search for in the key column. sub deleteRow { my ($self, $table, $key, $keyValue) = @_; - $self->session->db->write("delete from $table where ".$key."=".$self->$self->session->db->quote($keyValue)); + $self->write("delete from $table where ".$key."=".$self->quote($keyValue)); } @@ -379,7 +376,7 @@ The value to search for in the key column. sub getRow { my ($self, $table, $key, $keyValue) = @_; - my $row = $self->session->db->quickHashRef("select * from $table where ".$key."=".$self->$self->session->db->quote($keyValue)); + my $row = $self->quickHashRef("select * from $table where ".$key."=".$self->quote($keyValue)); return $row; } @@ -546,14 +543,14 @@ Any scalar variable that needs to be escaped to be inserted into the database. sub quote { my $self = shift; my $value = shift; - return $self->dbh->$self->session->db->quote($value); + return $self->dbh->quote($value); } #------------------------------------------------------------------- =head2 quoteAndJoin ( arrayRef ) -Returns a comma seperated string quoted and ready for insert/select into/from the database. This is typically used for a statement like "select * from someTable where field in (".$self->session->db->quoteAndJoin(\@strings).")". +Returns a comma seperated string quoted and ready for insert/select into/from the database. This is typically used for a statement like "select * from someTable where field in (".$db->quoteAndJoin(\@strings).")". B This is not a regular method, but is an exported subroutine. @@ -568,7 +565,7 @@ sub quoteAndJoin { my $arrayRef = shift; my @newArray; foreach my $value (@$arrayRef) { - push(@newArray,$self->$self->session->db->quote($value)); + push(@newArray,$self->quote($value)); } return join(",",@newArray); } @@ -663,7 +660,7 @@ sub setRow { my (@pairs); foreach my $key (keys %{$data}) { unless ($key eq $keyColumn) { - push(@pairs, $key.'='.$self->$self->session->db->quote($data->{$key})); + push(@pairs, $key.'='.$self->quote($data->{$key})); } } if ($pairs[0] ne "") { diff --git a/lib/WebGUI/Session/ErrorHandler.pm b/lib/WebGUI/Session/ErrorHandler.pm index 3f69e5f8f..f7632933a 100644 --- a/lib/WebGUI/Session/ErrorHandler.pm +++ b/lib/WebGUI/Session/ErrorHandler.pm @@ -73,7 +73,7 @@ sub audit { my $self = shift; my $message = shift; $Log::Log4perl::caller_depth++; - $self->info($self->{_session}->user->username." (".$self->{_session}->user->userId.") ".$message); + $self->info($self->session->user->username." (".$self->session->user->userId.") ".$message); $Log::Log4perl::caller_depth--; } @@ -88,12 +88,12 @@ Returns true if the user meets the condition to see debugging information and de sub canShowDebug { my $self = shift; - return 0 unless ($self->{_session}->setting->get("showDebug")); - return 1 if ($self->{_session}->setting->get("debugIp") eq ""); - my @ips = split(" ",$self->{_session}->setting->get("debugIp")); + return 0 unless ($self->session->setting->get("showDebug")); + return 1 if ($self->session->setting->get("debugIp") eq ""); + my @ips = split(" ",$self->session->setting->get("debugIp")); my $ok = 0; foreach my $ip (@ips) { - if ($self->{_session}->env("REMOTE_ADDR") =~ /^$ip/) { + if ($self->session->env("REMOTE_ADDR") =~ /^$ip/) { $ok = 1; last; } @@ -111,14 +111,14 @@ Returns true if the user meets the conditions to see performance indicators and sub canShowPerformanceIndicators { my $self = shift; - my $mask = $self->{_session}->setting->get("debugIp"); - my $ip = $self->{_session}->env("REMOTE_ADDR"); + my $mask = $self->session->setting->get("debugIp"); + my $ip = $self->session->env("REMOTE_ADDR"); return ( ( - $self->{_session}->setting->get("showPerformanceIndicators") + $self->session->setting->get("showPerformanceIndicators") ) && ( $ip =~ /^$mask/ || - $self->{_session}->setting->get("debugIp") eq "" + $self->session->setting->get("debugIp") eq "" ) ); } @@ -140,7 +140,7 @@ sub debug { my $self = shift; my $message = shift; $self->getLogger->debug($message); - $self->{_session}->stow->set("debug_debug") = $self->{_session}->stow->get("debug_debug").$message."\n"; + $self->session->stow->set("debug_debug", $self->session->stow->get("debug_debug").$message."\n"); } @@ -161,7 +161,7 @@ sub error { my $message = shift; $self->getLogger->error($message); $self->getLogger->debug("Stack trace for ERROR ".$message."\n".$self->getStackTrace()); - $self->{_session}->stow->set("debug_error", $self->{_session}->stow->get("debug_error").$message."\n"); + $self->session->stow->set("debug_error", $self->session->stow->get("debug_error").$message."\n"); } @@ -176,25 +176,25 @@ Adds a FATAL type message to the log, outputs an error message to the user, and sub fatal { my $self = shift; my $message = shift; - $self->{_session}->http->setStatus("500","Server Error"); - Apache2::RequestUtil->request->content_type('text/html') if ($self->{_session}->request); + $self->session->http->setStatus("500","Server Error"); + Apache2::RequestUtil->request->content_type('text/html') if ($self->session->request); $self->getLogger->fatal($message); $self->getLogger->debug("Stack trace for FATAL ".$message."\n".$self->getStackTrace()); - print $self->{_session}->http->getHeader if ($self->{_session}->request); + print $self->session->http->getHeader if ($self->session->request); unless ($self->canShowDebug()) { #NOTE: You can't internationalize this because with some types of errors that would cause an infinite loop. print "

Problem With Request

We have encountered a problem with your request. Please use your back button and try again. If this problem persists, please contact us with what you were trying to do and the time and date of the problem."; - print '
'.$self->{_session}->setting("companyName"); - print '
'.$self->{_session}->setting("companyEmail"); - print '
'.$self->{_session}->setting("companyURL"); + print '
'.$self->session->setting("companyName"); + print '
'.$self->session->setting("companyEmail"); + print '
'.$self->session->setting("companyURL"); } else { print "

WebGUI Fatal Error

Something unexpected happened that caused this system to fault.

\n"; print "

".$message."

\n"; print $self->showDebug(); } - $self->{_session}->close(); + $self->session->close(); die $message; } @@ -224,7 +224,7 @@ Returns a text message containing all of the session variables. sub getSessionVars { my $self = shift; my $data; - while (my ($section, $hash) = each %{$self->{_session}}) { + while (my ($section, $hash) = each %{$self->session}) { if (ref $hash eq 'HASH') { while (my ($key, $value) = each %$hash) { if (ref $value eq 'ARRAY') { @@ -285,7 +285,7 @@ sub info { my $self = shift; my $message = shift; $self->getLogger->info($message); - $self->{_session}->stow->set("debug_info") = $self->{_session}->stow->get("debug_info").$message."\n"; + $self->session->stow->set("debug_info") = $self->session->stow->get("debug_info").$message."\n"; } #------------------------------------------------------------------- @@ -327,12 +327,25 @@ sub security { my $self = shift; my $message = shift; $Log::Log4perl::caller_depth++; - $self->warn($self->{_session}->user->username." (".$self->{_session}->user->userId.") connecting from " - .$self->{_session}->env("REMOTE_ADDR")." attempted to ".$message); + $self->warn($self->session->user->username." (".$self->session->user->userId.") connecting from " + .$self->session->env("REMOTE_ADDR")." attempted to ".$message); $log::Log4perl::caller_depth--; } +#------------------------------------------------------------------- + +=head2 session ( ) + +Returns a reference to the current session. + +=cut + +sub session { + my $self = shift; + return $self->{_session}; +} + #------------------------------------------------------------------- =head2 showDebug ( ) @@ -343,16 +356,16 @@ Creates an HTML formatted string sub showDebug { my $self = shift; - my $text = $self->{_session}->stow->get('debug_error'); + my $text = $self->session->stow->get('debug_error'); $text =~ s/\n/\
\n/g; my $output = 'beginDebug
'.$text."
\n"; - $text = $self->{_session}->stow->get('debug_warn'); + $text = $self->session->stow->get('debug_warn'); $text =~ s/\n/\
\n/g; $output .= '
'.$text."
\n"; - $text = $self->{_session}->stow->get('debug_info'); + $text = $self->session->stow->get('debug_info'); $text =~ s/\n/\
\n/g; $output .= '
'.$text."
\n"; - $text = $self->{_session}->stow->get('debug_debug'); + $text = $self->session->stow->get('debug_debug'); $text =~ s/\n/\
\n/g; $output .= '
'.$text."
\n"; $text = $self->getSessionVars(); @@ -379,7 +392,7 @@ sub warn { my $self = shift; my $message = shift; $self->getLogger->warn($message); - $self->{_session}->stow->set("debug_warn", $self->{_session}->stow->get("debug_warn").$message."\n"); + $self->session->stow->set("debug_warn", $self->session->stow->get("debug_warn").$message."\n"); }