more session related bug fixes

This commit is contained in:
JT Smith 2006-01-14 21:30:49 +00:00
parent c8f1327be0
commit b1ab07d24f
6 changed files with 38 additions and 38 deletions

View file

@ -198,10 +198,14 @@ sub commit {
#-------------------------------------------------------------------
=head2 connect ( dsn, user, pass, session )
=head2 connect ( session, dsn, user, pass )
Constructor. Connects to the database using DBI.
=head2 session
A reference to the active WebGUI::Session object.
=head2 dsn
The Database Service Name of the database you wish to connect to. It looks like 'DBI:mysql:dbname;host=localhost'.
@ -214,18 +218,14 @@ The username to use to connect to the database defined by dsn.
The password to use to connect to the database defined by dsn.
=head2 session
A reference to the active WebGUI::Session object.
=cut
sub connect {
my $class = shift;
my $session = shift;
my $dsn = shift;
my $user = shift;
my $pass = shift;
my $session = shift;
my $dbh = DBI->connect($dsn,$user,$pass,{RaiseError=>0,AutoCommit=>1 }) or $session->errorHandler->fatal("Couldn't connect to database.");
if ( $dsn =~ /Oracle/ ) { # Set Oracle specific attributes
$dbh->{LongReadLen} = 512 * 1024;

View file

@ -165,7 +165,7 @@ Returns a WebGUI::SQL object, which is connected to the WebGUI database.
sub db {
my $self = shift;
unless (exists $self->{_db}) {
$self->{_db} = $self->db->connect($self->config->get("dsn"), $self->config->get("dbuser"), $self->config->get("dbpass"), $self);
$self->{_db} = WebGUI::SQL->connect($self,$self->config->get("dsn"), $self->config->get("dbuser"), $self->config->get("dbpass"));
}
return $self->{_db};
}
@ -184,7 +184,7 @@ sub dbSlave {
foreach (1..3) {
my $slave = $self->config->get("dbslave".$_);
if (exists $slave->{dsn}) {
push(@{$self->{_slave}},$self->db->connect($slave->{dsn},$slave->{user},$slave->{pass}, $self));
push(@{$self->{_slave}},$self->db->connect($self, $slave->{dsn},$slave->{user},$slave->{pass}));
}
}
}
@ -530,17 +530,16 @@ sub user {
my $self = shift;
my $option = shift;
if (defined $option) {
$self->{_var}{userId} = $option->{userId} || $option->{user}->userId;
$self->db->setRow("userSession","sessionId", $self->{_var});
if ($self->setting("passiveProfilingEnabled")) {
$self->db->write("update passiveProfileLog set userId = ".$self->db->quote($self->{_var}{userId})." where sessionId = ".$self->db->quote($self->getId));
my $userId = $option->{userId} || $option->{user}->userId;
if ($self->setting->get("passiveProfilingEnabled")) {
$self->db->write("update passiveProfileLog set userId = ".$self->db->quote($userId)." where sessionId = ".$self->db->quote($self->getId));
}
delete $self->{_stow};
$self->{_user} = $option->{user} || WebGUI::User->new($self, $self->{_var}{userId});
$self->{_user} = $option->{user} || WebGUI::User->new($self, $userId);
} elsif (!exists $self->{_user}) {
$self->{_user} = WebGUI::User->new($self, $self->var->get('userId'));
}
$self->{_request}->user($self->{_user}->username) if ($self->{_request});
$self->request->user($self->{_user}->username) if ($self->request);
return $self->{_user};
}

View file

@ -56,10 +56,9 @@ These methods are available from this class:
sub _create {
my $session = shift;
my $userId = shift || $session->id->generate();
$session->db->write("insert into users (userId,dateCreated) values (".$session->db->quote($userId).",".$session->datetime->time().")");
require WebGUI::Grouping;
WebGUI::Group->new([2])->addUsers([$userId]);
WebGUI::Group->new([7])->addUsers([$userId]);
$session->db->write("insert into users (userId,dateCreated) values (".$session->db->quote($userId).",".time().")");
WebGUI::Group->new($session,[2])->addUsers([$userId]);
WebGUI::Group->new($session,[7])->addUsers([$userId]);
return $userId;
}
@ -85,7 +84,7 @@ sub addToGroups {
my $expireOffset = shift;
$self->uncache;
foreach my $groupId (@{$groups}) {
WebGUI::Group->new($groupId)->addUsers([$self->userId],$expireOffset);
WebGUI::Group->new($self->session,$groupId)->addUsers([$self->userId],$expireOffset);
}
}
@ -142,7 +141,7 @@ sub delete {
$self->session->db->write("delete from users where userId=".$self->session->db->quote($self->{_userId}));
$self->session->db->write("delete from userProfileData where userId=".$self->session->db->quote($self->{_userId}));
foreach my $groupId (@{$self->session->user->getGroups($self->userId)}) {
WebGUI::Group->new($groupId)->deleteUsers([$self->userId]);
WebGUI::Group->new($self->session,$groupId)->deleteUsers([$self->userId]);
}
$self->session->db->write("delete from messageLog where userId=".$self->session->db->quote($self->{_userId}));
my $authMethod = WebGUI::Operation::Auth::getInstance($self->authMethod,$self->{_userId});
@ -166,7 +165,7 @@ sub deleteFromGroups {
my $groups = shift;
$self->uncache;
foreach my $groupId (@{$groups}) {
WebGUI::Group->new($groupId)->deleteUsers([$self->userId]);
WebGUI::Group->new($self->session,$groupId)->deleteUsers([$self->userId]);
}
}
@ -273,7 +272,7 @@ sub isInGroup {
}
}
### Get data for auxillary checks.
my $group = WebGUI::Group->new($gid);
my $group = WebGUI::Group->new($self->session,$gid);
### Check IP Address
if ($group->get("ipFilter")) {
my $ipFilter = $group->get("ipFilter");