74 lines
1.8 KiB
Perl
74 lines
1.8 KiB
Perl
package WebGUI::Operation::Fork;
|
|
|
|
=head1 LEGAL
|
|
|
|
-------------------------------------------------------------------
|
|
WebGUI is Copyright 2001-2009 Plain Black Corporation.
|
|
-------------------------------------------------------------------
|
|
Please read the legal notices (docs/legal.txt) and the license
|
|
(docs/license.txt) that came with this distribution before using
|
|
this software.
|
|
-------------------------------------------------------------------
|
|
http://www.plainblack.com info@plainblack.com
|
|
-------------------------------------------------------------------
|
|
|
|
=cut
|
|
|
|
use strict;
|
|
use warnings;
|
|
|
|
use WebGUI::Fork;
|
|
use WebGUI::Pluggable;
|
|
|
|
=head1 NAME
|
|
|
|
WebGUI::Operation::Fork
|
|
|
|
=head1 DESCRIPTION
|
|
|
|
URL dispatching for WebGUI::Fork monitoring
|
|
|
|
=head1 SUBROUTINES
|
|
|
|
These subroutines are available from this package:
|
|
|
|
=cut
|
|
|
|
#-------------------------------------------------------------------
|
|
|
|
=head2 handler ( session )
|
|
|
|
Dispatches to the proper module based on the module form parameter if op is
|
|
fork. Returns insufficient privilege page if the user doesn't pass canView on
|
|
the process before dispatching.
|
|
|
|
=cut
|
|
|
|
sub www_fork {
|
|
my $session = shift;
|
|
my $form = $session->form;
|
|
my $module = $form->get('module') || 'Status';
|
|
my $pid = $form->get('pid') || return undef;
|
|
|
|
my $process = WebGUI::Fork->new( $session, $pid );
|
|
|
|
return $session->privilege->insufficient unless $process->canView;
|
|
|
|
my $log = $session->log;
|
|
|
|
unless ($process) {
|
|
$log->error("Tried to get info for nonexistent process $pid");
|
|
return undef;
|
|
}
|
|
|
|
my $output = eval { WebGUI::Pluggable::run( "WebGUI::Fork::$module", 'handler', [$process] ); };
|
|
|
|
if ($@) {
|
|
$log->error($@);
|
|
return undef;
|
|
}
|
|
|
|
return $output;
|
|
} ## end sub www_fork
|
|
|
|
1;
|