#!/usr/bin/perl # list_groups.cgi # Lists all the groups with quotas on some filesystem require './quota-lib.pl'; &ReadParse(); $f = $in{'dir'}; $whatfailed = $text{'lgroups_failed'}; &can_edit_filesys($f) || &error($text{'lgroups_eallow'}); $form = 0; # List quotas &ui_print_header(&text('lgroups_quotas', $f), $text{'lgroups_title'}, "", "list_groups"); # Build and show tabs $prog = "list_groups.cgi?dir=".&urlize($f); @tabs = ( [ 'list', $text{'lgroups_tablist'}, $prog."&mode=list" ] ); if ($access{'default'}) { push(@tabs, [ 'default', $text{'lusers_tabdefault'}, $prog."&mode=default" ]); } if ($access{'email'} && &foreign_check("cron") && &foreign_check("mailboxes")) { push(@tabs, [ 'email', $text{'lusers_tabemail'}, $prog."&mode=email" ]); } print &ui_tabs_start(\@tabs, "mode", $in{'mode'} || 'list', 1); # Build user list links @ulinks = ( ); if ($access{'ggrace'}) { push(@ulinks, &ui_link("group_grace_form.cgi?filesys=".&urlize($f), $text{'lusers_egrace'}) ); } if (!defined(&can_quotacheck) || &can_quotacheck($f)) { push(@ulinks, &ui_link("check_quotas.cgi?filesys=".&urlize($f)."&source=group", $text{'lusers_check'}) ); } # Groups list, in a tab print &ui_tabs_start_tab("mode", "list"); $n = &filesystem_groups($f); $bsize = &block_size($f); $fsbsize = &block_size($f); if ($n > $config{'display_max'} && !$access{'ro'}) { print "<b>",&text('lgroups_toomany', $f),"</b><p>\n"; print &ui_links_row(\@ulinks); } elsif ($n) { my $threshold_pc = $config{'threshold_pc'} || 101; $threshold_pc = 101 if $threshold_pc < 1 or $threshold_pc > 101; if (!$access{'ro'}) { print &ui_form_start("edit_group_mass.cgi", "post"); print &ui_hidden('dir', $f),"\n"; } # Generate summary of blocks and files used ($binfo, $finfo) = &filesystem_info($f, \%user, $n, $fsbsize); $show_pc_hblocks = $threshold_pc != 101 && $config{'pc_show'} >= 1; $show_pc_sblocks = $threshold_pc != 101 && $config{'pc_show'}%2 == 0; print "<b>"; print $bsize ? $text{'lusers_space'} : $text{'lusers_blocks'}; print $access{'diskspace'} ? " ($binfo)" : ""; print " \n"; print $text{'lusers_files'}; print $access{'diskspace'} ? " ($finfo)" : ""; print "</b><br>\n"; # Generate select links @links = ( &select_all_link("d", $form), &select_invert_link("d", $form), @ulinks ); if (!$access{'ro'}) { print &ui_links_row(\@links); } # Generate header (with used/soft/hard) local @hcols; local @tds; if (!$access{'ro'}) { push(@hcols, ""); push(@tds, "width=5"); } push(@hcols, $text{'lgroups_group'}); if ($show_pc_hblocks) { push(@hcols, $text{'lusers_pc_hblocks'}); } if ($show_pc_sblocks) { push(@hcols, $text{'lusers_pc_sblocks'}); } push(@hcols, $text{'lusers_used'}, $text{'lusers_soft'}, $text{'lusers_hard'}, $config{'show_grace'} ? ( $text{'lusers_grace'} ) : ( )); push(@hcols, $text{'lusers_used'}, $text{'lusers_soft'}, $text{'lusers_hard'}, $config{'show_grace'} ? ( $text{'lusers_grace'} ) : ( )); print &ui_columns_start(\@hcols, \@tds); # Sort groups @order = (0 .. $n-1); if ($config{'sort_mode'} == 0) { @order = sort { $group{$b,'ublocks'} <=> $group{$a,'ublocks'} } @order; } elsif ($config{'sort_mode'} == 3) { @order = sort { $group{$b,'hblocks'} <=> $group{$a,'hblocks'} } @order; } elsif ($config{'sort_mode'} == 4) { @order = sort { $group{$b,'sblocks'} <=> $group{$a,'sblocks'} } @order; } elsif ($config{'sort_mode'} == 2) { @order = sort { $group{$a,'group'} cmp $group{$b,'group'} } @order; } elsif ($config{'sort_mode'} == 5) { @order = sort { &to_percent($group{$b,'ublocks'}, $group{$b,'hblocks'}) <=> &to_percent($group{$a,'ublocks'}, $group{$a,'hblocks'}) } @order; } elsif ($config{'sort_mode'} == 6) { @order = sort { &to_percent($group{$b,'ublocks'}, $group{$b,'sblocks'}) <=> &to_percent($group{$a,'ublocks'}, $group{$a,'sblocks'}) } @order; } # Generate table of groups foreach $i (@order) { next if (!&can_edit_group($group{$i,'group'})); next if ($config{'hide_uids'} && $group{$i,'group'} =~ /^#/); local @cols; if ($access{'ro'}) { push(@cols, $group{$i,'group'}); } else { push(@cols, &ui_link("edit_group_quota.cgi?group=". &urlize($group{$i,'group'})."&filesys=". &urlize($f)."&source=0", $group{$i,'group'}) ); } my $pc_hblocks=0; my $pc_sblocks=0; if($group{$i,'hblocks'}) { $pc_hblocks = 100 * $group{$i,'ublocks'}; $pc_hblocks/= $group{$i,'hblocks'}; $pc_hblocks = int($pc_hblocks); } if($group{$i,'sblocks'}) { $pc_sblocks = 100 * $group{$i,'ublocks'}; $pc_sblocks/= $group{$i,'sblocks'}; $pc_sblocks = int($pc_sblocks); } if ($show_pc_hblocks) { if ($pc_hblocks > $threshold_pc) { push(@cols, "<font color=#ff0000>". &html_escape($pc_hblocks)."%</font>"); } else { push(@cols, &html_escape($pc_hblocks)."%"); } } if ($show_pc_sblocks) { if ($pc_sblocks > $threshold_pc) { push(@cols, "<font color=#ff0000>". &html_escape($pc_sblocks)."%</font>"); } else { push(@cols, &html_escape($pc_sblocks)."%"); } }local $ublocks = $group{$i,'ublocks'}; if ($bsize) { $ublocks = &nice_size($ublocks*$bsize); } if ($group{$i,'hblocks'} && $group{$i,'ublocks'} > $group{$i,'hblocks'}) { push(@cols, "<font color=#ff0000>". $ublocks."</font>"); } elsif ($group{$i,'sblocks'} && $group{$i,'ublocks'} > $group{$i,'sblocks'}) { push(@cols, "<font color=#ff7700>". $ublocks."</font>"); } else { push(@cols, $ublocks); } push(@cols, &nice_limit($group{$i,'sblocks'}, $bsize)); push(@cols, &nice_limit($group{$i,'hblocks'}, $bsize)); push(@cols, $group{$i,'gblocks'}) if ($config{'show_grace'}); push(@cols, $group{$i,'ufiles'}); push(@cols, &nice_limit($group{$i,'sfiles'}, $bsize, 1)); push(@cols, &nice_limit($group{$i,'hfiles'}, $bsize, 1)); push(@cols, $group{$i,'gfiles'}) if ($config{'show_grace'}); if ($access{'ro'}) { print &ui_columns_row(\@cols, \@tds); } else { print &ui_checked_columns_row(\@cols, \@tds, "d", $group{$i,'group'}); } } print &ui_columns_end(); if (!$access{'ro'}) { print &ui_links_row(\@links); print &ui_submit($text{'lgroups_mass'}, "mass"),"<br>\n"; print &ui_form_end(); } } else { print "<b>",&text('lgroups_noquota', $f),"</b><p>\n"; print &ui_links_row(\@ulinks); } # Form to edit any user if (!$access{'ro'}) { print &ui_form_start("edit_group_quota.cgi"); print &ui_hidden("filesys", $f); print &ui_hidden("source", 0); print &ui_submit($text{'lgroups_equota'}); print &ui_group_textbox("group"); print &ui_form_end(); } print &ui_tabs_end_tab("mode", "list"); # Show form for default quotas, in a tab if ($access{'default'}) { print &ui_tabs_start_tab("mode", "default"); print &text('lgroups_info', $text{'lusers_useradmin'}),"<p>\n"; @dquot = split(/\s+/, $config{"gsync_$f"}); print &ui_form_start("save_gsync.cgi"); print &ui_hidden("filesys", $f); print &ui_table_start($text{'lgroups_newgroup'}, "width=100%", 4); # Default block limits print &ui_table_row($text{'lusers_sblimit'}, "a_input("sblocks", $dquot[0], $bsize)); print &ui_table_row($text{'lusers_hblimit'}, "a_input("hblocks", $dquot[1], $bsize)); # Default file limits print &ui_table_row($text{'lusers_sflimit'}, "a_input("sfiles", $dquot[2])); print &ui_table_row($text{'lusers_hflimit'}, "a_input("hfiles", $dquot[3])); print &ui_table_end(); print &ui_form_end([ [ undef, $text{'lusers_apply'} ] ]); print &ui_tabs_end_tab("mode", "default"); } # Show form for email notifications if ($access{'email'} && &foreign_check("cron") && &foreign_check("mailboxes")) { print &ui_tabs_start_tab("mode", "email"); print &ui_form_start("save_gemail.cgi"); print &ui_hidden("filesys", $f); print &ui_table_start($text{'lgroups_emailheader'}, "width=100%", 4); print &ui_table_row($text{'lgroups_email'}, &ui_radio("email", $config{"gemail_$f"} ? 1 : 0, [ [ 1, $text{'yes'} ], [ 0, $text{'no'} ] ])); print &ui_table_row($text{'lusers_interval'}, &ui_textbox("interval", $config{"gemail_interval_$f"}, 5). " ".$text{'lusers_hours'}); print &ui_table_row($text{'lusers_ltype'}, &ui_radio("type", $config{"gemail_type_$f"} ? 1 : 0, [ [ 1, $text{'lusers_hard'} ], [ 0, $text{'lusers_soft'} ] ])); print &ui_table_row($text{'lusers_percent'}, &ui_textbox("percent", $config{"gemail_percent_$f"}, 5). " %"); print &ui_table_row($text{'lgroups_to'}, &ui_radio("tomode", int($config{"gemail_tomode_$f"}), [ [ 0, $text{'lgroups_tosame'} ], [ 1, &text('lgroups_tofixed', &ui_textbox("to", $config{"gemail_to_$f"}, 20)) ], &foreign_installed("virtual-server") ? ( [ 2, $text{'lgroups_tovirt'} ] ) : ( ) ]), 3); print &ui_table_row($text{'lusers_from'}, &ui_textbox("from", $config{"gemail_from_$f"} || 'webmin@'.&get_system_hostname(), 30)); print &ui_table_row($text{'lusers_cc'}, &ui_opt_textbox("cc", $config{"gemail_cc_$f"}, 30, $text{'lusers_nocc'}), 3); print &ui_table_end(); print &ui_form_end([ [ 'save', $text{'lusers_apply'} ] ]); print &ui_tabs_end_tab("mode", "email"); } print &ui_tabs_end(1); &ui_print_footer("", $text{'lgroups_return'});
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
help | Folder | 0755 |
|
|
images | Folder | 0755 |
|
|
lang | Folder | 0755 |
|
|
CHANGELOG | File | 3.33 KB | 0644 |
|
acl_security.pl | File | 4.27 KB | 0755 |
|
activate.cgi | File | 940 B | 0755 |
|
cgi_args.pl | File | 1.05 KB | 0755 |
|
check_quotas.cgi | File | 710 B | 0755 |
|
config-ALL-linux | File | 838 B | 0644 |
|
config-freebsd | File | 747 B | 0644 |
|
config-hpux | File | 488 B | 0644 |
|
config-irix | File | 473 B | 0644 |
|
config-macos | File | 747 B | 0644 |
|
config-netbsd | File | 747 B | 0644 |
|
config-openbsd | File | 747 B | 0644 |
|
config-solaris | File | 488 B | 0644 |
|
config-unixware | File | 488 B | 0644 |
|
config.info | File | 1.77 KB | 0644 |
|
config.info.ca | File | 2.11 KB | 0644 |
|
config.info.cs | File | 1.89 KB | 0644 |
|
config.info.da | File | 1.48 KB | 0644 |
|
config.info.de | File | 2.06 KB | 0644 |
|
config.info.es | File | 1.58 KB | 0644 |
|
config.info.fr | File | 1.53 KB | 0644 |
|
config.info.hu | File | 0 B | 0644 |
|
config.info.it | File | 1.5 KB | 0644 |
|
config.info.ko | File | 1.87 KB | 0644 |
|
config.info.nl | File | 2.1 KB | 0644 |
|
config.info.no | File | 1.96 KB | 0644 |
|
config.info.pl | File | 2.15 KB | 0644 |
|
config.info.ru | File | 1.73 KB | 0644 |
|
config.info.sv | File | 1.11 KB | 0644 |
|
config.info.tr | File | 1.37 KB | 0644 |
|
config.info.uk | File | 1.68 KB | 0644 |
|
config.info.zh | File | 940 B | 0644 |
|
config.info.zh_TW | File | 807 B | 0644 |
|
copy_group.cgi | File | 1.37 KB | 0755 |
|
copy_group_form.cgi | File | 922 B | 0755 |
|
copy_user.cgi | File | 1.29 KB | 0755 |
|
copy_user_form.cgi | File | 903 B | 0755 |
|
defaultacl | File | 99 B | 0644 |
|
edgrace.pl | File | 496 B | 0755 |
|
edit_group_mass.cgi | File | 1.17 KB | 0755 |
|
edit_group_quota.cgi | File | 2.37 KB | 0755 |
|
edit_user_mass.cgi | File | 1.17 KB | 0755 |
|
edit_user_quota.cgi | File | 2.34 KB | 0755 |
|
edquota.pl | File | 508 B | 0755 |
|
email.pl | File | 5.49 KB | 0755 |
|
freebsd-lib.pl | File | 10.71 KB | 0755 |
|
group_filesys.cgi | File | 3.06 KB | 0755 |
|
group_grace_form.cgi | File | 1.29 KB | 0755 |
|
group_grace_save.cgi | File | 788 B | 0755 |
|
hpux-lib.pl | File | 6.26 KB | 0755 |
|
index.cgi | File | 3.4 KB | 0755 |
|
install_check.pl | File | 373 B | 0755 |
|
irix-lib.pl | File | 5.76 KB | 0755 |
|
linux-lib.pl | File | 27 KB | 0755 |
|
list_groups.cgi | File | 9.41 KB | 0755 |
|
list_users.cgi | File | 9.32 KB | 0755 |
|
log_parser.pl | File | 1.41 KB | 0755 |
|
macos-lib.pl | File | 9 KB | 0755 |
|
module.info | File | 238 B | 0644 |
|
module.info.af | File | 0 B | 0644 |
|
module.info.af.auto | File | 126 B | 0644 |
|
module.info.ar | File | 155 B | 0644 |
|
module.info.ar.auto | File | 26 B | 0644 |
|
module.info.be | File | 0 B | 0644 |
|
module.info.be.auto | File | 242 B | 0644 |
|
module.info.bg | File | 0 B | 0644 |
|
module.info.bg.auto | File | 241 B | 0644 |
|
module.info.ca | File | 123 B | 0644 |
|
module.info.ca.auto | File | 14 B | 0644 |
|
module.info.cs | File | 24 B | 0644 |
|
module.info.cs.auto | File | 126 B | 0644 |
|
module.info.da | File | 20 B | 0644 |
|
module.info.da.auto | File | 108 B | 0644 |
|
module.info.de | File | 147 B | 0644 |
|
module.info.de.auto | File | 14 B | 0644 |
|
module.info.el | File | 0 B | 0644 |
|
module.info.el.auto | File | 242 B | 0644 |
|
module.info.es | File | 24 B | 0644 |
|
module.info.es.auto | File | 114 B | 0644 |
|
module.info.eu | File | 0 B | 0644 |
|
module.info.eu.auto | File | 147 B | 0644 |
|
module.info.fa | File | 0 B | 0644 |
|
module.info.fa.auto | File | 210 B | 0644 |
|
module.info.fi | File | 0 B | 0644 |
|
module.info.fi.auto | File | 148 B | 0644 |
|
module.info.fr | File | 27 B | 0644 |
|
module.info.fr.auto | File | 139 B | 0644 |
|
module.info.he | File | 0 B | 0644 |
|
module.info.he.auto | File | 197 B | 0644 |
|
module.info.hr | File | 0 B | 0644 |
|
module.info.hr.auto | File | 140 B | 0644 |
|
module.info.hu | File | 30 B | 0644 |
|
module.info.hu.auto | File | 126 B | 0644 |
|
module.info.it | File | 20 B | 0644 |
|
module.info.it.auto | File | 96 B | 0644 |
|
module.info.ja | File | 36 B | 0644 |
|
module.info.ja.auto | File | 169 B | 0644 |
|
module.info.ko | File | 25 B | 0644 |
|
module.info.ko.auto | File | 135 B | 0644 |
|
module.info.lt | File | 0 B | 0644 |
|
module.info.lt.auto | File | 134 B | 0644 |
|
module.info.lv | File | 0 B | 0644 |
|
module.info.lv.auto | File | 136 B | 0644 |
|
module.info.ms | File | 115 B | 0644 |
|
module.info.ms.auto | File | 14 B | 0644 |
|
module.info.mt | File | 0 B | 0644 |
|
module.info.mt.auto | File | 141 B | 0644 |
|
module.info.nl | File | 23 B | 0644 |
|
module.info.nl.auto | File | 112 B | 0644 |
|
module.info.no | File | 19 B | 0644 |
|
module.info.no.auto | File | 100 B | 0644 |
|
module.info.pl | File | 36 B | 0644 |
|
module.info.pl.auto | File | 126 B | 0644 |
|
module.info.pt | File | 24 B | 0644 |
|
module.info.pt.auto | File | 120 B | 0644 |
|
module.info.pt_BR | File | 0 B | 0644 |
|
module.info.pt_BR.auto | File | 152 B | 0644 |
|
module.info.ro | File | 0 B | 0644 |
|
module.info.ro.auto | File | 147 B | 0644 |
|
module.info.ru | File | 36 B | 0644 |
|
module.info.ru.auto | File | 224 B | 0644 |
|
module.info.sk | File | 0 B | 0644 |
|
module.info.sk.auto | File | 153 B | 0644 |
|
module.info.sl | File | 0 B | 0644 |
|
module.info.sl.auto | File | 140 B | 0644 |
|
module.info.sv | File | 18 B | 0644 |
|
module.info.sv.auto | File | 103 B | 0644 |
|
module.info.th | File | 0 B | 0644 |
|
module.info.th.auto | File | 280 B | 0644 |
|
module.info.tr | File | 23 B | 0644 |
|
module.info.tr.auto | File | 121 B | 0644 |
|
module.info.uk | File | 0 B | 0644 |
|
module.info.uk.auto | File | 246 B | 0644 |
|
module.info.ur | File | 0 B | 0644 |
|
module.info.ur.auto | File | 200 B | 0644 |
|
module.info.vi | File | 0 B | 0644 |
|
module.info.vi.auto | File | 182 B | 0644 |
|
module.info.zh | File | 21 B | 0644 |
|
module.info.zh.auto | File | 91 B | 0644 |
|
module.info.zh_TW | File | 24 B | 0644 |
|
module.info.zh_TW.auto | File | 97 B | 0644 |
|
netbsd-lib.pl | File | 10.71 KB | 0755 |
|
notes | File | 1.7 KB | 0644 |
|
openbsd-lib.pl | File | 10.71 KB | 0755 |
|
prefs.info | File | 51 B | 0644 |
|
quota-lib.pl | File | 14.96 KB | 0755 |
|
save_email.cgi | File | 1.32 KB | 0755 |
|
save_gemail.cgi | File | 1.31 KB | 0755 |
|
save_group_mass.cgi | File | 1.51 KB | 0755 |
|
save_group_quota.cgi | File | 1.28 KB | 0755 |
|
save_gsync.cgi | File | 794 B | 0755 |
|
save_sync.cgi | File | 789 B | 0755 |
|
save_user_mass.cgi | File | 1.49 KB | 0755 |
|
save_user_quota.cgi | File | 1.26 KB | 0755 |
|
solaris-lib.pl | File | 7.85 KB | 0755 |
|
uninstall.pl | File | 226 B | 0755 |
|
unixware-lib.pl | File | 6.4 KB | 0755 |
|
user_filesys.cgi | File | 3.04 KB | 0755 |
|
user_grace_form.cgi | File | 1.29 KB | 0755 |
|
user_grace_save.cgi | File | 783 B | 0755 |
|
useradmin_update.pl | File | 2.45 KB | 0755 |
|