webgui/lib/WebGUI/Macro/Execute.pm
2009-02-20 23:47:30 +00:00

48 lines
1.3 KiB
Perl

package WebGUI::Macro::Execute;
#-------------------------------------------------------------------
# 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
#-------------------------------------------------------------------
use strict;
=head1 NAME
Package WebGUI::Macro::Execute
=head1 DESCRIPTION
Allows a content manager or administrator to execute an external program.
=head2 process ( system_call )
=head3 system_call
The system call to execute. STDOUT from the call will be captured and
returned. Calls containing the words passwd, shadow or .conf will
be blocked and an error message returned instead.
=cut
#-------------------------------------------------------------------
sub process {
my $session = shift;
my @param = @_;
if ($param[0] =~ /passwd/ || $param[0] =~ /shadow/ || $param[0] =~ /\.conf/) {
my $i18n = WebGUI::International->new($session, 'Macro_Execute');
return $i18n->get('execute error');
} else {
return `$param[0]`;
}
}
1;