• 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;