#!/usr/bin/perl # index.cgi # List all at jobs and display a form for creating a new one # # F&AS : default parameters can be set # ext_user : default user # ext_cmd : default command use strict; use warnings; no warnings 'redefine'; no warnings 'uninitialized'; our (%access, %text, %in, %config); our ($module_name, $remote_user); require './at-lib.pl'; use POSIX; &ui_print_header(undef, $text{'index_title'}, "", undef, 1, 1); ReadParse(); # Check if at is installed if (!&has_command("at")) { &ui_print_endpage(&text('index_noat', "<tt>at</tt>", "../config.cgi?$module_name")); } # Check if OS is supported if (!defined(&list_atjobs)) { &ui_print_endpage(&text('index_nostyle', "../config.cgi?$module_name")); } # Show list of existing jobs my @jobs = &list_atjobs(); @jobs = grep { &can_edit_user(\%access, $_->{'user'}) } @jobs; if (@jobs) { print &ui_form_start("delete_jobs.cgi", "post"); @jobs = sort { $a->{'id'} <=> $b->{'id'} } @jobs; my @tds = ( "width=5", "nowrap" ); my @links = ( &select_all_link("d"), &select_invert_link("d") ); print &ui_links_row(\@links); print &ui_columns_start([ "", $text{'index_id'}, $text{'index_user'}, $text{'index_exec'}, $text{'index_created'}, $text{'index_cmd'} ], 100, 0, \@tds); foreach my $j (@jobs) { my @cols; push(@cols, &ui_link("edit_job.cgi?id=".$j->{'id'}, $j->{'id'}) ); push(@cols, &html_escape($j->{'user'})); my $date = localtime($j->{'date'}); push(@cols, "<tt>$date</tt>"); my $created = localtime($j->{'created'}); push(@cols, "<tt>$created</tt>"); push(@cols, join("<br>", split(/\n/, &html_escape($j->{'realcmd'})))); print &ui_checked_columns_row(\@cols, \@tds, "d", $j->{'id'}); } print &ui_columns_end(); print &ui_links_row(\@links); print &ui_form_end([ [ "delete", $text{'index_delete'} ] ]); print &ui_hr(); } # Show form for creating a new At job print &ui_form_start("create_job.cgi"); print &ui_table_start($text{'index_header'}, undef, 2); # User to run as my $dir = "/"; my ($user, $usel); if ($access{'mode'} == 1) { $usel = &ui_select("user", undef, [ split(/\s+/, $access{'users'}) ]); } elsif ($access{'mode'} == 3) { $usel = "<tt>$remote_user</tt>"; print &ui_hidden("user", $remote_user); my @uinfo = getpwnam($remote_user); $dir = $uinfo[7]; } else { $usel = &ui_user_textbox("user", $in{'ext_user'}); } print &ui_table_row($text{'index_user'}, $usel); # Run date my @now = localtime(time()); print &ui_table_row($text{'index_date'}, &ui_textbox("day", $now[3], 2)."/". &ui_select("month", $now[4], [ map { [ $_, $text{"smonth_".($_+1)} ] } ( 0 .. 11 ) ])."/". &ui_textbox("year", $now[5]+1900, 4). &date_chooser_button("day", "month", "year")); # Run time print &ui_table_row($text{'index_time'}, &ui_textbox("hour", undef, 2).":".&ui_textbox("min", "00", 2)); # Current date and time my ($date, $time) = split(/\s+/, &make_date(time())); print &ui_table_row($text{'index_cdate'}, $date); print &ui_table_row($text{'index_ctime'}, $time); # Run in directory print &ui_table_row($text{'index_dir'}, &ui_textbox("dir", $dir, 50)); # Commands to run print &ui_table_row($text{'index_cmd'}, &ui_textarea("cmd", $in{'ext_cmd'}, 5, 50)); # Send email on completion print &ui_table_row($text{'index_mail'}, &ui_yesno_radio("mail", 0)); print &ui_table_end(); print &ui_form_end([ [ undef, $text{'create'} ] ]); if ($access{'allow'} && $config{'allow_file'}) { # Show form to manage allowed and denied users my @allow = &list_allowed(); my @deny = &list_denied(); print &ui_hr(); print &ui_form_start("save_allow.cgi", "post"); print &ui_table_start($text{'index_allow'}, undef, 2); print &ui_table_row($text{'index_amode'}, &ui_radio("amode", @allow ? 1 : @deny ? 2 : 0, [ [ 0, $text{'index_amode0'} ], [ 1, $text{'index_amode1'} ], [ 2, $text{'index_amode2'} ] ])); print &ui_table_row("", &ui_textarea("ausers", @allow ? join("\n", @allow) : @deny ? join("\n", @deny) : undef, 5, 50)); print &ui_table_end(); print &ui_form_end([ [ "save", $text{'save'} ] ]); } # If there is an init script that runs an atd server, show status if (&foreign_available("init")) { &foreign_require("init"); my $init = defined(&get_init_name) ? &get_init_name() : undef; if ($access{'stop'} && $init) { print &ui_hr(); print &ui_buttons_start(); # Running now? my $r = &init::status_action($init); if ($r == 1) { print &ui_buttons_row("stop.cgi", $text{'index_stop'}, $text{'index_stopdesc'}); } elsif ($r == 0) { print &ui_buttons_row("start.cgi", $text{'index_start'}, $text{'index_startdesc'}); } # Start at boot? my $atboot = &init::action_status($init); print &ui_buttons_row("bootup.cgi", $text{'index_boot'}, $text{'index_bootdesc'}, undef, &ui_radio("boot", $atboot == 2 ? 1 : 0, [ [ 1, $text{'yes'} ], [ 0, $text{'no'} ] ])); print &ui_buttons_end(); } } &ui_print_footer("/", $text{'index'});
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
images | Folder | 0755 |
|
|
lang | Folder | 0755 |
|
|
CHANGELOG | File | 702 B | 0644 |
|
acl_security.pl | File | 1.17 KB | 0755 |
|
at-lib.pl | File | 2.89 KB | 0755 |
|
backup_config.pl | File | 892 B | 0755 |
|
bootup.cgi | File | 356 B | 0755 |
|
cgi_args.pl | File | 332 B | 0755 |
|
config-coherent-linux | File | 84 B | 0644 |
|
config-corel-linux | File | 88 B | 0644 |
|
config-debian-linux | File | 88 B | 0644 |
|
config-debian-linux-3.0-ALL | File | 45 B | 0644 |
|
config-freebsd | File | 37 B | 0644 |
|
config-generic-linux | File | 88 B | 0644 |
|
config-gentoo-linux | File | 97 B | 0644 |
|
config-irix | File | 44 B | 0644 |
|
config-macos | File | 35 B | 0644 |
|
config-mandrake-linux | File | 84 B | 0644 |
|
config-msc-linux | File | 84 B | 0644 |
|
config-netbsd | File | 37 B | 0644 |
|
config-open-linux | File | 89 B | 0644 |
|
config-openSUSE-Linux-15.0-ALL | File | 88 B | 0644 |
|
config-openbsd | File | 37 B | 0644 |
|
config-openmamba-linux | File | 84 B | 0644 |
|
config-openserver | File | 50 B | 0644 |
|
config-redhat-linux | File | 84 B | 0644 |
|
config-slackware-linux | File | 88 B | 0644 |
|
config-sol-linux | File | 88 B | 0644 |
|
config-solaris | File | 47 B | 0644 |
|
config-suse-linux | File | 88 B | 0644 |
|
config-syno-linux | File | 88 B | 0644 |
|
config-trustix-linux | File | 84 B | 0644 |
|
config-turbo-linux | File | 84 B | 0644 |
|
config-united-linux | File | 88 B | 0644 |
|
config.info | File | 219 B | 0644 |
|
config.info.bg | File | 347 B | 0644 |
|
config.info.ca | File | 264 B | 0644 |
|
config.info.cs | File | 241 B | 0644 |
|
config.info.de | File | 293 B | 0644 |
|
config.info.es | File | 262 B | 0644 |
|
config.info.fr | File | 273 B | 0644 |
|
config.info.hr | File | 0 B | 0644 |
|
config.info.hu | File | 257 B | 0644 |
|
config.info.it | File | 251 B | 0644 |
|
config.info.ms | File | 241 B | 0644 |
|
config.info.nl | File | 242 B | 0644 |
|
config.info.no | File | 239 B | 0644 |
|
config.info.pl | File | 206 B | 0644 |
|
config.info.pt_BR | File | 154 B | 0644 |
|
config.info.ru | File | 333 B | 0644 |
|
config.info.sk | File | 302 B | 0644 |
|
config.info.sv | File | 0 B | 0644 |
|
config.info.tr | File | 139 B | 0644 |
|
config.info.uk | File | 164 B | 0644 |
|
config.info.zh_TW | File | 136 B | 0644 |
|
create_job.cgi | File | 1.07 KB | 0755 |
|
defaultacl | File | 40 B | 0644 |
|
delete_job.cgi | File | 1.31 KB | 0755 |
|
delete_jobs.cgi | File | 613 B | 0755 |
|
edit_job.cgi | File | 1.57 KB | 0755 |
|
freebsd-lib.pl | File | 1.43 KB | 0755 |
|
index.cgi | File | 4.93 KB | 0755 |
|
install_check.pl | File | 406 B | 0755 |
|
irix-lib.pl | File | 1.25 KB | 0755 |
|
linux-lib.pl | File | 1.76 KB | 0755 |
|
log_parser.pl | File | 625 B | 0755 |
|
macos-lib.pl | File | 1.25 KB | 0755 |
|
module.info | File | 425 B | 0644 |
|
module.info.af | File | 0 B | 0644 |
|
module.info.af.auto | File | 111 B | 0644 |
|
module.info.ar | File | 0 B | 0644 |
|
module.info.ar.auto | File | 156 B | 0644 |
|
module.info.be | File | 0 B | 0644 |
|
module.info.be.auto | File | 162 B | 0644 |
|
module.info.bg | File | 0 B | 0644 |
|
module.info.bg.auto | File | 183 B | 0644 |
|
module.info.ca | File | 84 B | 0644 |
|
module.info.ca.auto | File | 11 B | 0644 |
|
module.info.cs | File | 30 B | 0644 |
|
module.info.cs.auto | File | 90 B | 0644 |
|
module.info.da | File | 0 B | 0644 |
|
module.info.da.auto | File | 110 B | 0644 |
|
module.info.de | File | 102 B | 0644 |
|
module.info.de.auto | File | 13 B | 0644 |
|
module.info.el | File | 0 B | 0644 |
|
module.info.el.auto | File | 193 B | 0644 |
|
module.info.es | File | 30 B | 0644 |
|
module.info.es.auto | File | 76 B | 0644 |
|
module.info.eu | File | 0 B | 0644 |
|
module.info.eu.auto | File | 117 B | 0644 |
|
module.info.fa | File | 0 B | 0644 |
|
module.info.fa.auto | File | 187 B | 0644 |
|
module.info.fi | File | 0 B | 0644 |
|
module.info.fi.auto | File | 123 B | 0644 |
|
module.info.fr | File | 31 B | 0644 |
|
module.info.fr.auto | File | 82 B | 0644 |
|
module.info.he | File | 0 B | 0644 |
|
module.info.he.auto | File | 152 B | 0644 |
|
module.info.hr | File | 0 B | 0644 |
|
module.info.hr.auto | File | 106 B | 0644 |
|
module.info.hu | File | 29 B | 0644 |
|
module.info.hu.auto | File | 95 B | 0644 |
|
module.info.it | File | 28 B | 0644 |
|
module.info.it.auto | File | 77 B | 0644 |
|
module.info.ja | File | 0 B | 0644 |
|
module.info.ja.auto | File | 164 B | 0644 |
|
module.info.ko | File | 0 B | 0644 |
|
module.info.ko.auto | File | 123 B | 0644 |
|
module.info.lt | File | 0 B | 0644 |
|
module.info.lt.auto | File | 114 B | 0644 |
|
module.info.lv | File | 0 B | 0644 |
|
module.info.lv.auto | File | 111 B | 0644 |
|
module.info.ms | File | 85 B | 0644 |
|
module.info.ms.auto | File | 13 B | 0644 |
|
module.info.mt | File | 0 B | 0644 |
|
module.info.mt.auto | File | 104 B | 0644 |
|
module.info.nl | File | 28 B | 0644 |
|
module.info.nl.auto | File | 80 B | 0644 |
|
module.info.no | File | 33 B | 0644 |
|
module.info.no.auto | File | 80 B | 0644 |
|
module.info.pl | File | 90 B | 0644 |
|
module.info.pl.auto | File | 10 B | 0644 |
|
module.info.pt | File | 0 B | 0644 |
|
module.info.pt.auto | File | 102 B | 0644 |
|
module.info.pt_BR | File | 30 B | 0644 |
|
module.info.pt_BR.auto | File | 81 B | 0644 |
|
module.info.ro | File | 0 B | 0644 |
|
module.info.ro.auto | File | 108 B | 0644 |
|
module.info.ru | File | 44 B | 0644 |
|
module.info.ru.auto | File | 132 B | 0644 |
|
module.info.sk | File | 29 B | 0644 |
|
module.info.sk.auto | File | 86 B | 0644 |
|
module.info.sl | File | 0 B | 0644 |
|
module.info.sl.auto | File | 99 B | 0644 |
|
module.info.sv | File | 30 B | 0644 |
|
module.info.sv.auto | File | 80 B | 0644 |
|
module.info.th | File | 0 B | 0644 |
|
module.info.th.auto | File | 244 B | 0644 |
|
module.info.tr | File | 38 B | 0644 |
|
module.info.tr.auto | File | 103 B | 0644 |
|
module.info.uk | File | 0 B | 0644 |
|
module.info.uk.auto | File | 162 B | 0644 |
|
module.info.ur | File | 0 B | 0644 |
|
module.info.ur.auto | File | 171 B | 0644 |
|
module.info.vi | File | 0 B | 0644 |
|
module.info.vi.auto | File | 139 B | 0644 |
|
module.info.zh | File | 0 B | 0644 |
|
module.info.zh.auto | File | 85 B | 0644 |
|
module.info.zh_TW | File | 24 B | 0644 |
|
module.info.zh_TW.auto | File | 70 B | 0644 |
|
negativeacl | File | 7 B | 0644 |
|
openserver-lib.pl | File | 1.02 KB | 0755 |
|
rbac-mapping | File | 103 B | 0644 |
|
save_allow.cgi | File | 695 B | 0755 |
|
solaris-lib.pl | File | 1.35 KB | 0755 |
|
start.cgi | File | 311 B | 0755 |
|
stop.cgi | File | 306 B | 0755 |
|