X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=opac%2Fopac-logout.pl;h=b8a5c75874f996c744a33716af906cc8540e1582;hb=369ebc659256c3908420fef4ab664879defc1a01;hp=1d707135d155e03485bab6ed44c52c4cc00dc15b;hpb=d582d90c532bffb83437aa528c249a4dd0fc8b67;p=koha.git diff --git a/opac/opac-logout.pl b/opac/opac-logout.pl index 1d707135d1..b8a5c75874 100755 --- a/opac/opac-logout.pl +++ b/opac/opac-logout.pl @@ -1,13 +1,30 @@ #!/usr/bin/perl +# This file is part of Koha. +# +# Koha is free software; you can redistribute it and/or modify it under the +# terms of the GNU General Public License as published by the Free Software +# Foundation; either version 2 of the License, or (at your option) any later +# version. +# +# Koha 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. +# +# You should have received a copy of the GNU General Public License along with +# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place, +# Suite 330, Boston, MA 02111-1307 USA + use CGI; use C4::Context; +use C4::Auth qw/:DEFAULT get_session/; use C4::Output; +use HTML::Template::Pro; +use CGI::Session; my $query=new CGI; -my $sessionID=$query->cookie('sessionID'); - +my $sessionID=$query->cookie('CGISESSID'); if ($ENV{'REMOTE_USER'}) { print $query->header(); @@ -27,7 +44,7 @@ browser. my $sessions; open (S, "/tmp/sessions"); - # FIXME - Come up with a better logging mechanism + # FIXME - Come up with a better logging mechanism while (my ($sid, $u, $lasttime) = split(/:/, )) { chomp $lasttime; (next) unless ($sid); @@ -35,50 +52,33 @@ while (my ($sid, $u, $lasttime) = split(/:/, )) { $sessions->{$sid}->{'userid'}=$u; $sessions->{$sid}->{'lasttime'}=$lasttime; } +close S; open (S, ">/tmp/sessions"); foreach (keys %$sessions) { - my $userid=$sessions->{$_}->{'userid'}; + my $userid=$sessions->{$_}->{'userid'}; my $lasttime=$sessions->{$_}->{'lasttime'}; print S "$_:$userid:$lasttime\n"; } +close S; my $dbh = C4::Context->dbh; - # Check that this is the ip that created the session before deleting it - -my $sth=$dbh->prepare("select userid,ip from sessions where sessionID=?"); +# This script and function are apparently unfinished. --atz (Dec 4 2007) +my $session = get_session($sessionID); +$session->flush; +$session->delete; +my $sth=$dbh->prepare("delete from sessions where sessionID=?"); $sth->execute($sessionID); -my ($userid, $ip); -if ($sth->rows) { - ($userid,$ip) = $sth->fetchrow; - if ($ip ne $ENV{'REMOTE_ADDR'}) { - # attempt to logout from a different ip than cookie was created at - exit; - } -} - -$dbh->do("delete from sessions where sessionID=?", $sessionID); open L, ">>/tmp/sessionlog"; -my $time=localtime(time()); -printf L "%20s from %16s logged out at %30s (manual log out).\n", $userid, $ip, $time; +printf L "%20s from %16s logged out at %30s (manual log out).\n", $userid, $ip, localtime; + # where is $ip is coming from?? close L; -my $cookie=$query->cookie(-name => 'sessionID', - -value => '', - -expires => '+1y'); +my $cookie=$query->cookie(-name => 'CGISESSID', + -value => '', + -expires => '+1y'); # Should redirect to opac home page after logging out - print $query->redirect("/cgi-bin/koha/opac-main.pl"); - exit; -if ($sessionID) { - print "Logged out of $sessionID
\n"; - print "Login"; -} else { - print "Not logged in.
\n"; - print "Login"; -} - -