$Data::Dumper::Indent
= 1;
$OpenInteract2::Manage::Website::ViewSession::VERSION
=
sprintf
(
"%d.%02d"
,
q$Revision: 1.5 $
=~ /(\d+)\.(\d+)/);
sub
brief_description {
return
'View the contents of a particular session'
;
}
sub
list_param_require {
return
[
'session_id'
,
'website_dir'
] }
sub
get_param_description {
my
(
$self
,
$param_name
) =
@_
;
if
(
$param_name
eq
'session_id'
) {
return
"ID of session to view"
;
}
}
sub
run_task {
my
(
$self
) =
@_
;
my
$config
= CTX->server_config;
my
$session_id
=
$self
->param(
'session_id'
);
my
$session_class
=
$config
->{session_info}{class};
eval
"require $session_class"
;
if
( $@ ) {
oi_error
"Could not require [$session_class]: $@"
;
}
my
$params
=
$config
->{session_params} || {};
my
$ds_name
=
$config
->{session_info}{datasource};
$params
->{Handle} = CTX->datasource(
$ds_name
);
if
(
$session_class
=~ /MySQL$/ ) {
$params
->{LockHandle} =
$params
->{Handle};
}
my
%data
= ();
eval
{
tie
%data
,
$session_class
,
$session_id
,
$params
};
my
%status
= (
action
=>
'View Session'
,
session_id
=>
$session_id
);
if
( $@ ) {
$status
{is_ok} =
'no'
;
$status
{message} =
"Caught error trying to tie session: $@"
;
}
else
{
$status
{is_ok} =
'yes'
;
$status
{message} =
"Contents of session:\n"
. Dumper( \
%data
);
}
$self
->_add_status( \
%status
);
}
1;