2 # Create, update or delete a group
4 require './htaccess-lib.pl';
6 &error_setup($text{'gsave_err'});
7 @dirs = &list_directories();
8 ($dir) = grep { $_->[0] eq $in{'dir'} } @dirs;
9 &can_access_dir($dir->[0]) || &error($text{'dir_ecannot'});
10 &lock_file($dir->[1]);
13 $groups = &list_groups($dir->[4]);
15 $group = $groups->[$in{'idx'}];
16 $loggroup = $group->{'group'};
19 $loggroup = $in{'group'};
23 # Just delete this group
24 &delete_group($group);
28 $in{'group'} || &error($text{'gsave_egroup1'});
29 $in{'group'} =~ /:/ && &error($text{'gsave_egroup2'});
30 $in{'group'} =~ /^\S+$/ || &error($text{'gsave_egroup2'});
31 if ($in{'new'} || $group->{'group'} ne $in{'group'}) {
32 ($clash) = grep { $_->{'group'} eq $in{'group'} } @$groups;
33 $clash && &error($text{'gsave_eclash'});
37 $group->{'group'} = $in{'group'};
38 $group->{'enabled'} = $in{'enabled'};
39 $group->{'members'} = [ split(/\s+/, $in{'members'}) ];
41 &create_group($group, $dir->[4]);
44 &modify_group($group);
49 &unlock_file($dir->[1]);
50 &webmin_log($in{'delete'} ? "delete" : $in{'new'} ? "create" : "modify",
51 "group", $loggroup, $group);