Handle hostnames with upper-case letters
[webmin.git] / quota / cgi_args.pl
1
2 do 'quota-lib.pl';
3
4 sub cgi_args
5 {
6 my ($cgi) = @_;
7 my ($fs) = grep { $_->[5] && &can_edit_filesys($_->[0]) } &list_filesystems();
8 my @uinfo = getpwnam($remote_user);
9 if ($cgi eq 'list_users.cgi' || $cgi eq 'list_groups.cgi') {
10         # First filesystem
11         return $fs ? 'dir='.&urlize($fs->[0]) : 'none';
12         }
13 elsif ($cgi eq 'edit_user_quota.cgi') {
14         # First editable user
15         my $n = &filesystem_users($fs->[0]);
16         return $n ? 'filesys='.&urlize($fs->[0]).
17                     '&user='.&urlize($user{0,'user'}) : 'none';
18         }
19 elsif ($cgi eq 'edit_group_quota.cgi') {
20         # First editable group
21         my $n = &filesystem_groups($fs->[0]);
22         return $n ? 'filesys='.&urlize($fs->[0]).
23                     '&group='.&urlize($group{0,'group'}) : 'none';
24         }
25 elsif ($cgi eq 'user_filesys.cgi' || $cgi eq 'copy_user_form.cgi') {
26         return scalar(@uinfo) ?
27                 'user='.&urlize($remote_user) : 'user=root';
28         }
29 elsif ($cgi eq 'group_filesys.cgi' || $cgi eq 'copy_group_form.cgi') {
30         if (scalar(@uinfo)) {
31                 my @ginfo = getgrgid($uinfo[3]);
32                 return 'group='.&urlize($ginfo[0]) if (scalar(@ginfo));
33                 }
34         return 'group=bin';
35         }
36 return undef;
37 }