JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr#!/usr/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 "

\n"; print &text('run_output'),"

\n"; my @uinfo = getpwnam($job->{'user'}); print "

";
	&additional_log('exec', undef, $job->{'cmd'});
	my $got = &proc::safe_process_exec($temp, $uinfo[2], $uinfo[3],
					*STDOUT, undef, 1);
	if (!$got) { print "$text{'run_none'}\n"; }
	unlink($temp);
	print "
\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(""); }