#!/usr/local/bin/perl # delete_group.cgi # Delete a group, after asking for confirmation require './user-lib.pl'; &ReadParse(); @glist = &list_groups(); $group = $glist[$in{'num'}]; $group || &error($text{'gdel_enum'}); $| = 1; &error_setup($text{'gdel_err'}); %access = &get_module_acl(); &can_edit_group(\%access, $group) || &error($text{'gdel_egroup'}); $access{'gdelete'} || &error($text{'gdel_egroup'}); &ui_print_header(undef, $text{'gdel_title'}, ""); if (!$config{'delete_root'} && $group->{'gid'} <= 10) { print "

$text{'gdel_eroot'}

\n"; &ui_print_footer("", $text{'index_return'}); exit; } if ($in{'confirmed'}) { # Check for repeat click if ($group->{'group'} ne $in{'group'} || $in{'group'} eq '') { print "

$text{'gdel_ealready'}

\n"; print "


\n"; &footer("", $text{'index_return'}); exit; } # Delete from other modules if ($in{'others'}) { print "$text{'gdel_other'}
\n"; local $error_must_die = 1; eval { &other_modules("useradmin_delete_group", $group); }; if ($@) { print &text('udel_failed', $@),"

\n"; } else { print "$text{'gdel_done'}

\n"; } } # Delete from group file &lock_user_files(); print "$text{'gdel_group'}
\n"; &set_group_envs($group, 'DELETE_GROUP'); $merr = &making_changes(); &error(&text('usave_emaking', "$merr")) if (defined($merr)); &delete_group($group); &unlock_user_files(); &made_changes(); &webmin_log("delete", "group", $group->{'group'}, $group); print "$text{'gdel_done'}

\n"; done: &ui_print_footer("", $text{'index_return'}); } else { # check if this is anyone's primary group foreach $u (&list_users()) { if ($u->{'gid'} == $group->{'gid'}) { print "",&text('gdel_eprimary', $u->{'user'}), "

\n"; print "


\n"; &footer("", $text{'index_return'}); exit; } } # Ask if the user is sure print "
\n"; print "\n"; print "{'group'}\">\n"; print "\n"; print "
",&text('gdel_sure', $group->{'group'}),"

\n"; print "\n"; printf "
%s
\n", $config{'default_other'} ? "checked" : "", $text{'gdel_dothers'}; print "

\n"; print "

\n"; &ui_print_footer("", $text{'index_return'}); }