Viewing file: save_user_mass.cgi (1.49 KB) -rwxr-xr-x Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#!/usr/bin/perl # Actually update the users
require './quota-lib.pl'; &ReadParse(); &error_setup($text{'umass_err'}); $fs = $in{'dir'}; @d = split(/\0/, $in{'d'}); foreach $u (@d) { &can_edit_user($u) || &error(&text('euser_eallowus', $u)); } $access{'ro'} && &error(&text('euser_eallowus', $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 users $bsize = &block_size($fs); $n = &filesystem_users($fs); foreach $u (@d) { # Find the user @uinfo = ( ); for($i=0; $i<$n; $i++) { if ($user{$i,'user'} eq $u) { @uinfo = ( $user{$i,'sblocks'}, $user{$i,'hblocks'}, $user{$i,'sfiles'}, $user{$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 user &edit_user_quota($u, $fs, @uinfo); } }
&redirect("list_users.cgi?dir=".&urlize($fs));
|