$u->status('Deactivated') does not expire existing sessions

This commit is contained in:
Matthew Wilson 2006-05-19 02:41:03 +00:00
parent 4078d4d417
commit 0732eef9ce

View file

@ -540,16 +540,23 @@ If specified, the status is set to this value. Possible values are 'Active', 'S
=cut =cut
sub status { sub status {
my $self = shift; my $self = shift;
my $value = shift; my $value = shift;
if (defined $value) { if (defined $value) {
$self->uncache; $self->uncache;
$self->{_user}{"status"} = $value; $self->{_user}{"status"} = $value;
$self->{_user}{"lastUpdated"} =$self->session->datetime->time(); $self->{_user}{"lastUpdated"} =$self->session->datetime->time();
$self->session->db->write("update users set status=".$self->session->db->quote($value).", $self->session->db->write("update users set status=".$self->session->db->quote($value).",
lastUpdated=".$self->session->datetime->time()." where userId=".$self->session->db->quote($self->userId)); lastUpdated=".$self->session->datetime->time()." where userId=".$self->session->db->quote($self->userId));
} if ($value eq 'Deactivated') {
return $self->{_user}{"status"}; my $rs = $self->session->db->read("select sessionId from userSession where userId=?",[$self->{_userId}]);
while (my ($id) = $rs->array) {
$self->session->db->write("delete from userSessionScratch where sessionId=?",[$id]);
}
$self->session->db->write("delete from userSession where userId=?",[$self->{_userId}]);
}
}
return $self->{_user}{"status"};
} }
#------------------------------------------------------------------- #-------------------------------------------------------------------