3 # Copy some group's quota to a number of others
5 require './quota-lib.pl';
7 $whatfailed = $text{'cgroup_efail'};
8 $access{'filesys'} eq "*" ||
9 &error($text{'cgroup_ecannot'});
10 &can_edit_group($in{'group'}) ||
11 &error($text{'cgroup_egallow'});
12 $access{'ro'} && &error($text{'cgroup_egallow'});
14 if ($in{'dest'} == 0) {
17 while(@ginfo = getgrent()) { push(@copyto, $ginfo[0]); }
18 endgrent() if ($gconfig{'os_type'} ne 'hpux');
20 elsif ($in{'dest'} == 1) {
21 # Copy to selected groups
22 @copyto = split(/\s+/, $in{'groups'});
24 elsif ($in{'dest'} == 2) {
25 # Copy to groups containing users
26 foreach $u (split(/\s+/, $in{'users'})) {
27 @uinfo = getpwnam($u);
28 @ginfo = getgrgid($uinfo[3]);
29 push(@copyto, $ginfo[0]);
33 while(@ginfo = getgrent()) {
34 foreach $m (split(/\s+/, $ginfo[3])) {
36 push(@copyto, $ginfo[0]);
41 endgrent() if ($gconfig{'os_type'} ne 'hpux');
43 @copyto = &unique(@copyto);
44 @copyto = grep { $_ ne $in{'group'} } @copyto;
45 if (!@copyto) { &error($text{'cgroup_enogroup'}); }
46 foreach $c (@copyto) {
47 &can_edit_group($c) ||
48 &error(&text('cgroup_eallowto', $c));
52 ©_group_quota($in{'group'}, @copyto);
53 &webmin_log("copy", "group", $in{'group'}, \%in);
54 &redirect("group_filesys.cgi?group=$in{'group'}");