more session related bug fixes
This commit is contained in:
parent
c8f1327be0
commit
b1ab07d24f
6 changed files with 38 additions and 38 deletions
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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};
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue