3 # Save an existing environment variable, or create a new one
5 require './cron-lib.pl';
6 &error_setup($text{'env_err'});
9 @jobs = &list_cron_jobs();
14 $oldjob = $jobs[$in{'idx'}];
15 $job->{'file'} = $oldjob->{'file'};
16 $job->{'line'} = $oldjob->{'line'};
20 # Just re-direct to delete CGI
21 &redirect("delete_env.cgi?idx=$in{'idx'}");
25 @files = &unique((map { $_->{'file'} } @jobs),
26 "$config{'cron_dir'}/$in{'user'}");
27 foreach $f (@files) { &lock_file($f); }
29 # Check and parse inputs
30 if ($in{'name'} !~ /^\S+$/) {
31 &error($text{'save_ename'});
34 &error($text{'save_euser'});
36 if (!defined(getpwnam($in{'user'}))) {
37 &error(&text('save_euser2', $in{'user'}));
39 $job->{'active'} = $in{'active'};
40 $job->{'name'} = $in{'name'};
41 $job->{'value'} = $in{'value'};
43 # Check if this user is allowed to execute cron jobs
44 &can_use_cron($in{'user'}) ||
45 &error(&text('save_eallow', $in{'user'}));
46 $job->{'user'} = $in{'user'};
48 # Check module access control
49 &can_edit_user(\%access, $in{'user'}) ||
50 &error(&text('save_ecannot', $in{'user'}));
53 # Editing an existing variable
54 &can_edit_user(\%access, $oldjob->{'user'}) ||
55 &error(&text('save_ecannot', $oldjob->{'user'}));
56 if ($job->{'user'} eq $oldjob->{'user'}) {
59 &delete_cron_job($job);
60 &insert_cron_job($job);
63 &change_cron_job($job);
68 &delete_cron_job($oldjob);
70 &insert_cron_job($job);
73 &create_cron_job($job);
78 # Creating a new variable
80 &insert_cron_job($job);
83 &create_cron_job($job);
87 foreach $f (@files) { &unlock_file($f); }
89 &webmin_log("create", "env", $in{'user'}, \%in);
92 &webmin_log("modify", "env", $in{'user'}, \%in);