1#!@PERL@ 2# BEGIN BPS TAGGED BLOCK {{{ 3# 4# COPYRIGHT: 5# 6# This software is Copyright (c) 1996-2021 Best Practical Solutions, LLC 7# <sales@bestpractical.com> 8# 9# (Except where explicitly superseded by other copyright notices) 10# 11# 12# LICENSE: 13# 14# This work is made available to you under the terms of Version 2 of 15# the GNU General Public License. A copy of that license should have 16# been provided with this software, but in any event can be snarfed 17# from www.gnu.org. 18# 19# This work is distributed in the hope that it will be useful, but 20# WITHOUT ANY WARRANTY; without even the implied warranty of 21# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 22# General Public License for more details. 23# 24# You should have received a copy of the GNU General Public License 25# along with this program; if not, write to the Free Software 26# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 27# 02110-1301 or visit their web page on the internet at 28# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. 29# 30# 31# CONTRIBUTION SUBMISSION POLICY: 32# 33# (The following paragraph is not intended to limit the rights granted 34# to you to modify and distribute this software under the terms of 35# the GNU General Public License and is only of importance to you if 36# you choose to contribute your changes and enhancements to the 37# community by submitting them to Best Practical Solutions, LLC.) 38# 39# By intentionally submitting any modifications, corrections or 40# derivatives to this work, or any other work intended for use with 41# Request Tracker, to Best Practical Solutions, LLC, you confirm that 42# you are the copyright holder for those contributions and you grant 43# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, 44# royalty-free, perpetual, license to use, copy, create derivative 45# works based on those contributions, and sublicense and distribute 46# those contributions and any derivatives thereof. 47# 48# END BPS TAGGED BLOCK }}} 49use strict; 50use warnings; 51 52# fix lib paths, some may be relative 53BEGIN { # BEGIN RT CMD BOILERPLATE 54 require File::Spec; 55 require Cwd; 56 my @libs = ("@RT_LIB_PATH@", "@LOCAL_LIB_PATH@"); 57 my $bin_path; 58 59 for my $lib (@libs) { 60 unless ( File::Spec->file_name_is_absolute($lib) ) { 61 $bin_path ||= ( File::Spec->splitpath(Cwd::abs_path(__FILE__)) )[1]; 62 $lib = File::Spec->catfile( $bin_path, File::Spec->updir, $lib ); 63 } 64 unshift @INC, $lib; 65 } 66 67} 68 69use RT::Interface::CLI qw(Init); 70Init(); 71 72my $session_id = shift; 73Pod::Usage::pod2usage({ verbose => 2 }) unless $session_id; 74 75require RT::Interface::Web::Session; 76my %session; 77 78tie %session, 'RT::Interface::Web::Session', $session_id; 79unless ( $session{'_session_id'} eq $session_id ) { 80 print STDERR "Couldn't load session $session_id\n"; 81 exit 1; 82} 83 84use Data::Dumper; 85print "Content of session $session_id: ". Dumper( \%session); 86 87__END__ 88 89=head1 NAME 90 91rt-session-viewer - show the content of a user's session 92 93=head1 SYNOPSIS 94 95 # show the content of a session 96 rt-session-viewer 2c21c8a2909c14eff12975dd2cc7b9a3 97 98=head1 DESCRIPTION 99 100This script deserializes and print content of a session identified 101by <session id>. May be useful for developers and for troubleshooting 102problems. 103 104=cut 105