-
Keeper.pm
242 243 51 51 52 52 sub logoff { 53 53 my $self = shift; 54 my %opts = @_; 55 54 56 my $sid = _get_session_id (); 55 57 my $session = _get_session_object ( $sid ); 56 58 return unless ref $session; … … 60 62 warn "LOGOFF: New or deprecated session. Old sid = '$sid', new sid = '$session_id'" if $DEBUG; 61 63 _store_session_id ($session_id) 62 64 } else { 63 foreach my $key ( keys %$session ) { 64 next if $key eq '_session_id'; 65 next if $key eq '_timestamp'; 66 delete $session->{$key}; 67 } 65 if ( exists $opts{clear} ) { 66 my @clear = qw( id email login name nick type status ltime ); 67 push @clear, @{ $opts{clear} } if exists $opts{clear} && ref $opts{clear} eq 'ARRAY' && @{ $opts{clear} }; 68 foreach my $key ( @clear ) { 69 delete $session->{$key}; 70 } 71 } else { 72 foreach my $key ( keys %$session ) { 73 next if $key eq '_session_id'; 74 next if $key eq '_timestamp'; 75 delete $session->{$key}; 76 } 77 } 68 78 } 69 79 untie %$session; 70 80 return 1;