mirror of
https://github.com/webmin/webmin.git
synced 2025-07-20 16:48:46 +00:00
53 lines
1.3 KiB
Perl
Executable File
53 lines
1.3 KiB
Perl
Executable File
#!/usr/local/bin/perl
|
|
# Delete or run an at job
|
|
use strict;
|
|
use warnings;
|
|
no warnings 'redefine';
|
|
no warnings 'uninitialized';
|
|
our (%text, %in);
|
|
|
|
require './at-lib.pl';
|
|
&ReadParse();
|
|
&foreign_require("proc", "proc-lib.pl");
|
|
|
|
my @jobs = &list_atjobs();
|
|
my ($job) = grep { $_->{'id'} eq $in{'id'} } @jobs;
|
|
$job || &error($text{'delete_egone'});
|
|
|
|
if ($in{'run'}) {
|
|
# Run the command and show output
|
|
&ui_print_header(undef, $text{'run_title'}, "");
|
|
|
|
# Create temp script for job
|
|
my $temp = &transname();
|
|
my $TEMP;
|
|
&open_tempfile($TEMP, ">$temp");
|
|
&print_tempfile($TEMP, $job->{'cmd'});
|
|
&close_tempfile($TEMP);
|
|
chmod(0755, $temp);
|
|
|
|
print "<p>\n";
|
|
print &text('run_output'),"<p>\n";
|
|
my @uinfo = getpwnam($job->{'user'});
|
|
print "<pre>";
|
|
&additional_log('exec', undef, $job->{'cmd'});
|
|
my $got = &proc::safe_process_exec($temp, $uinfo[2], $uinfo[3],
|
|
*STDOUT, undef, 1);
|
|
if (!$got) { print "<i>$text{'run_none'}</i>\n"; }
|
|
unlink($temp);
|
|
print "</pre>\n";
|
|
&webmin_log("exec", "job", $job->{'user'}, $job);
|
|
|
|
&ui_print_footer("", $text{'index_return'});
|
|
}
|
|
else {
|
|
# Just delete the at job
|
|
&error_setup($text{'delete_err'});
|
|
my %access = &get_module_acl();
|
|
&can_edit_user(\%access, $job->{'user'}) || &error($text{'edit_ecannot'});
|
|
&delete_atjob($in{'id'});
|
|
&webmin_log("delete", "job", $job->{'user'}, $job);
|
|
&redirect("");
|
|
}
|
|
|