X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=rt%2Flib%2FRT%2FHandle.pm;h=5cdb65e5b74b722296fadd1139dbce0be376bee6;hp=6b74f361b0246615ee4c491966dc502b7909301c;hb=ded0451e9582df33cae6099a2fb72b4ea25076cf;hpb=0ebeec96313dd7edfca340f01f8fbbbac1f4aa1d diff --git a/rt/lib/RT/Handle.pm b/rt/lib/RT/Handle.pm index 6b74f361b..5cdb65e5b 100644 --- a/rt/lib/RT/Handle.pm +++ b/rt/lib/RT/Handle.pm @@ -1,5 +1,26 @@ -#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Handle.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ - +# BEGIN LICENSE BLOCK +# +# Copyright (c) 1996-2003 Jesse Vincent +# +# (Except where explictly superceded by other copyright notices) +# +# This work is made available to you under the terms of Version 2 of +# the GNU General Public License. A copy of that license should have +# been provided with this software, but in any event can be snarfed +# from www.gnu.org. +# +# This work is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# Unless otherwise specified, all modifications, corrections or +# extensions to this work which alter its source code become the +# property of Best Practical Solutions, LLC when submitted for +# inclusion in the work. +# +# +# END LICENSE BLOCK =head1 NAME RT::Handle - RT's database handle @@ -22,14 +43,16 @@ ok(require RT::Handle); package RT::Handle; -eval "use DBIx::SearchBuilder::Handle::$RT::DatabaseType; +use strict; +use vars qw/@ISA/; +eval "use DBIx::SearchBuilder::Handle::$RT::DatabaseType; \@ISA= qw(DBIx::SearchBuilder::Handle::$RT::DatabaseType);"; - #TODO check for errors here. =head2 Connect +Connects to RT's database handle. Takes nothing. Calls SUPER::Connect with the needed args =cut @@ -38,16 +61,41 @@ sub Connect { my $self=shift; # Unless the database port is a positive integer, we really don't want to pass it. -$RT::DatabasePort = undef unless (defined $RT::DatabasePort && $RT::DatabasePort =~ /^(\d+)$/); -$self->SUPER::Connect(Host => $RT::DatabaseHost, - Database => $RT::DatabaseName, +$self->SUPER::Connect( User => $RT::DatabaseUser, Password => $RT::DatabasePassword, + ); + +} + +=item BuildDSN + +Build the DSN for the RT database. doesn't take any parameters, draws all that +from the config file. + +=cut + + +sub BuildDSN { + my $self = shift; +$RT::DatabasePort = undef unless (defined $RT::DatabasePort && $RT::DatabasePort =~ /^(\d+)$/); +$RT::DatabaseHost = undef unless (defined $RT::DatabaseHost && $RT::DatabaseHost ne ''); + + $self->SUPER::BuildDSN(Host => $RT::DatabaseHost, + Database => $RT::DatabaseName, Port => $RT::DatabasePort, Driver => $RT::DatabaseType, RequireSSL => $RT::DatabaseRequireSSL, + DisconnectHandleOnDestroy => 1 ); + } + +eval "require RT::Handle_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Handle_Vendor.pm}); +eval "require RT::Handle_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Handle_Local.pm}); + 1;