3 # Delete a group, after asking for confirmation
5 require './user-lib.pl';
7 @glist = &list_groups();
8 ($group) = grep { $_->{'group'} eq $in{'group'} } @glist;
9 $group || &error($text{'gedit_egone'});
11 &error_setup($text{'gdel_err'});
12 &can_edit_group(\%access, $group) || &error($text{'gdel_egroup'});
13 $access{'gdelete'} || &error($text{'gdel_egroup'});
15 &ui_print_header(undef, $text{'gdel_title'}, "");
17 if (!$config{'delete_root'} && $group->{'gid'} <= 10) {
18 print "<b>$text{'gdel_eroot'}</b> <p>\n";
19 &ui_print_footer("", $text{'index_return'});
23 if ($in{'confirmed'}) {
24 # Check for repeat click
25 if ($group->{'group'} ne $in{'group'} || $in{'group'} eq '') {
26 print "<b>$text{'gdel_ealready'}</b> <p>\n";
27 &ui_print_footer("", $text{'index_return'});
31 # Delete from other modules
33 print "$text{'gdel_other'}<br>\n";
34 local $error_must_die = 1;
35 eval { &other_modules("useradmin_delete_group", $group); };
37 print &text('udel_failed', $@),"<p>\n";
40 print "$text{'gdel_done'}<p>\n";
44 # Delete from group file
46 print "$text{'gdel_group'}<br>\n";
47 &set_group_envs($group, 'DELETE_GROUP');
48 $merr = &making_changes();
49 &error(&text('usave_emaking', "<tt>$merr</tt>")) if (defined($merr));
51 &delete_group($group);
54 &webmin_log("delete", "group", $group->{'group'}, $group);
55 print "$text{'gdel_done'}<p>\n";
58 &ui_print_footer("index.cgi?mode=groups", $text{'index_return'});
61 # check if this is anyone's primary group
62 foreach $u (&list_users()) {
63 if ($u->{'gid'} == $group->{'gid'}) {
64 print "<b>",&text('gdel_eprimary', $u->{'user'}),
66 &ui_print_footer("", $text{'index_return'});
71 # Ask if the user is sure
72 print &ui_confirmation_form("delete_group.cgi",
73 &text('gdel_sure', $group->{'group'}),
74 [ [ "group", $group->{'group'} ] ],
75 [ [ "confirmed", $text{'gdel_del'} ] ],
76 ui_checkbox("others", 1, $text{'gdel_dothers'},
77 $config{'default_other'}),
80 &ui_print_footer("index.cgi?mode=groups", $text{'index_return'});