Handle hostnames with upper-case letters
[webmin.git] / quota / save_group_mass.cgi
1 #!/usr/local/bin/perl
2 # Actually update the groups
3
4 require './quota-lib.pl';
5 &ReadParse();
6 &error_setup($text{'gmass_err'});
7 $fs = $in{'dir'};
8 @d = split(/\0/, $in{'d'});
9 foreach $u (@d) {
10         &can_edit_group($u) ||
11                 &error(&text('egroup_eallowgr', $u));
12         }
13 $access{'ro'} && &error(&text('egroup_eallowgr', $u));
14 &can_edit_filesys($fs) ||
15         &error($text{'euser_eallowfs'});
16
17 # Validate inputs
18 foreach $t ('sblocks', 'hblocks', 'sfiles', 'hfiles') {
19         $in{$t."_def"} != 2 || $in{$t} =~ /^\d+$/ ||
20                 &error($text{'umass_e'.$t});
21         }
22
23 # Update the groups
24 $bsize = &block_size($fs);
25 $n = &filesystem_groups($fs);
26 foreach $u (@d) {
27         # Find the group
28         @uinfo = ( );
29         for($i=0; $i<$n; $i++) {
30                 if ($group{$i,'group'} eq $u) {
31                         @uinfo = ( $group{$i,'sblocks'}, $group{$i,'hblocks'},
32                                    $group{$i,'sfiles'},  $group{$i,'hfiles'} );
33                         last;
34                         }
35                 }
36
37         # Update his object
38         if (@uinfo) {
39                 if ($in{'sblocks_def'} == 1) {
40                         $uinfo[0] = 0;
41                         }
42                 elsif ($in{'sblocks_def'} == 2) {
43                         $uinfo[0] = &quota_parse('sblocks', $bsize, 1);
44                         }
45                 if ($in{'hblocks_def'} == 1) {
46                         $uinfo[1] = 0;
47                         }
48                 elsif ($in{'hblocks_def'} == 2) {
49                         $uinfo[1] = &quota_parse('hblocks', $bsize, 1);
50                         }
51                 if ($in{'sfiles_def'} == 1) {
52                         $uinfo[2] = 0;
53                         }
54                 elsif ($in{'sfiles_def'} == 2) {
55                         $uinfo[2] = $in{'sfiles'};
56                         }
57                 if ($in{'hfiles_def'} == 1) {
58                         $uinfo[3] = 0;
59                         }
60                 elsif ($in{'hfiles_def'} == 2) {
61                         $uinfo[3] = $in{'hfiles'};
62                         }
63
64                 # Update the group
65                 &edit_group_quota($u, $fs, @uinfo);
66                 }
67         }
68
69 &redirect("list_groups.cgi?dir=".&urlize($fs));
70