Handle hostnames with upper-case letters
[webmin.git] / foobar / save.cgi
1 #!/usr/bin/perl
2 # Create, update or delete a website
3
4 require 'foobar-lib.pl';
5 ReadParse();
6 error_setup($text{'save_err'});
7 lock_file($config{'foobar_conf'});
8
9 # Get the old site object
10 if (!$in{'new'}) {
11         my @sites = list_foobar_websites();
12         ($site) = grep { $_->{'domain'} eq $in{'old'} } @sites;
13         $site || error($text{'save_egone'});
14         }
15
16 if ($in{'delete'}) {
17         # Just delete it
18         delete_foobar_website($site);
19         }
20 else {
21         # Validate inputs
22         $in{'domain'} =~ /^[a-z0-9\.\-\_]+$/i ||
23                 error($text{'save_edomain'});
24         $in{'directory'} =~ /^\// ||
25                 error($text{'save_edirectory'});
26         -d $in{'directory'} ||
27                 error($text{'save_edirectory2'});
28         $site->{'domain'} = $in{'domain'};
29         $site->{'directory'} = $in{'directory'};
30
31         # Update or create
32         if ($in{'new'}) {
33                 create_foobar_website($site);
34                 }
35         else {
36                 modify_foobar_website($site);
37                 }
38         }
39
40 # Log the change
41 unlock_file($config{'foobar_conf'});
42 apply_configuration();
43 webmin_log($in{'new'} ? 'create' :
44            $in{'delete'} ? 'delete' : 'modify',
45            'site',
46            $site->{'domain'});
47 &redirect('');
48