Current File : //proc/thread-self/root/usr/share/webmin/quota/save_group_mass.cgi |
#!/usr/bin/perl
# Actually update the groups
require './quota-lib.pl';
&ReadParse();
&error_setup($text{'gmass_err'});
$fs = $in{'dir'};
@d = split(/\0/, $in{'d'});
foreach $u (@d) {
&can_edit_group($u) ||
&error(&text('egroup_eallowgr', $u));
}
$access{'ro'} && &error(&text('egroup_eallowgr', $u));
&can_edit_filesys($fs) ||
&error($text{'euser_eallowfs'});
# Validate inputs
foreach $t ('sblocks', 'hblocks', 'sfiles', 'hfiles') {
$in{$t."_def"} != 2 || $in{$t} =~ /^\d+(\.\d+)?$/ ||
&error($text{'umass_e'.$t});
}
# Update the groups
$bsize = &block_size($fs);
$n = &filesystem_groups($fs);
foreach $u (@d) {
# Find the group
@uinfo = ( );
for($i=0; $i<$n; $i++) {
if ($group{$i,'group'} eq $u) {
@uinfo = ( $group{$i,'sblocks'}, $group{$i,'hblocks'},
$group{$i,'sfiles'}, $group{$i,'hfiles'} );
last;
}
}
# Update his object
if (@uinfo) {
if ($in{'sblocks_def'} == 1) {
$uinfo[0] = 0;
}
elsif ($in{'sblocks_def'} == 2) {
$uinfo[0] = "a_parse('sblocks', $bsize, 1);
}
if ($in{'hblocks_def'} == 1) {
$uinfo[1] = 0;
}
elsif ($in{'hblocks_def'} == 2) {
$uinfo[1] = "a_parse('hblocks', $bsize, 1);
}
if ($in{'sfiles_def'} == 1) {
$uinfo[2] = 0;
}
elsif ($in{'sfiles_def'} == 2) {
$uinfo[2] = $in{'sfiles'};
}
if ($in{'hfiles_def'} == 1) {
$uinfo[3] = 0;
}
elsif ($in{'hfiles_def'} == 2) {
$uinfo[3] = $in{'hfiles'};
}
# Update the group
&edit_group_quota($u, $fs, @uinfo);
}
}
&redirect("list_groups.cgi?dir=".&urlize($fs));