From e76200aa5992e3c11f3344abca3620aceb08fb02 Mon Sep 17 00:00:00 2001 From: Daouda Lo Date: Mon, 4 Aug 2003 15:59:49 +0000 Subject: - ask before removing group --- userdrake | 46 +++++++++++++++++++++++++++++++--------------- 1 file changed, 31 insertions(+), 15 deletions(-) diff --git a/userdrake b/userdrake index a5d9564..60f4518 100755 --- a/userdrake +++ b/userdrake @@ -129,15 +129,14 @@ my @toolbwg; map { my $t = $toolb->append_item($_->[0], $_->[1], $_->[2], Gtk2::Image->new_from_file($pixdir . $_->[2] . '.png'), $_->[3], $toolb); push(@toolbwg, $t); - $toolb->append_space; +# $toolb->append_space; } ( [ N("Add User"), N("Add a user to the system"), 'user_add', \&AddUser ], [ N("Add Group"), N("Add a group to the system"), 'group_add', \&AddGroup ], [ N("Edit"), N("Edit selected row"), 'user_conf', \&Edit ], [ N("Delete"), N("Delete selected row"), 'user_del', \&Delete ], - [ N("Refresh"), N("Refresh the list"), 'refresh', sub { Refresh($sysfilter, $stringsearch) } ], - [ N("Help"), N("Generic help on userdrake"), 'help', \&HelpSystem ] + [ N("Refresh"), N("Refresh the list"), 'refresh', sub { Refresh($sysfilter, $stringsearch) } ] ); -my ($tbuser, $tbgroup, $tbedit, $tbdel, $tbref, $tbhelp) = @toolbwg; +my ($tbuser, $tbgroup, $tbedit, $tbdel, $tbref) = @toolbwg; GrayDelEdit(); my $ctx = USER::ADMIN->new; $fbut->signal_connect('clicked', sub { $stringsearch = $filter->get_text() ; Refresh($sysfilter, $stringsearch) }); @@ -445,7 +444,7 @@ sub Delete { #my $removehome = GimmeChoice(N(" Remove Home Directory"), N("Do you want to delete the user's home directory and mail spool?")); #$removehome and $ctx->Clean($userEnt); # New version - my $w = ugtk2->new(N("Delete User"), grab => 1, if_(!$::isEmbedded,transient => $us->{wnd}->{rwindow})); + my $w = ugtk2->new(N("Warning : Deleting User"), grab => 1, if_(!$::isEmbedded,transient => $us->{wnd}->{rwindow})); gtkadd($w->{window}, gtkpack_(Gtk2::VBox->new(0, 2), 0, Gtk2::Label->new(N("Deleting user %s\n Also perform the following actions\n", $username)), @@ -476,16 +475,33 @@ sub Delete { $w->main; } elsif ($page == 1) { my $groupname = GetNameEntFromIter($grouptree, $gtree_model, 0); - my $groupEnt = $ctx->LookupGroupByName($groupname); - my $members = $ctx->EnumerateUsersByGroup($groupname); - GLOOP:foreach my $username (@$members) { - my $userEnt = $ctx->LookupUserByName($username); - if ($userEnt && $userEnt->Gid($GetValue) == $groupEnt->Gid($GetValue)) { - RaiseError(N("%s is a primary group for user %s\n Remove the user first", $groupname, $username)); - last GLOOP - } - } - if (!$error) { $ctx->GroupDel($groupEnt); Refresh($sysfilter, $stringsearch) } + my $wg = ugtk2->new(N("Warning : Deleting Group"), grab => 1, if_(!$::isEmbedded,transient => $us->{wnd}->{rwindow})); + gtkadd($wg->{window}, + gtkpack_(Gtk2::VBox->new(0, 2), + 0, Gtk2::Label->new(N("Do you really want to delete the group %s\n", $groupname)), + 0, Gtk2::HSeparator->new, + 0, gtkpack(Gtk2::HBox->new(1, 20), + map { + my $r = $_->[1]; + gtksignal_connect(Gtk2::Button->new_from_stock($_->[0]), clicked => sub { + if (!$r) { + my $groupEnt = $ctx->LookupGroupByName($groupname); + my $members = $ctx->EnumerateUsersByGroup($groupname); + GLOOP:foreach my $username (@$members) { + my $userEnt = $ctx->LookupUserByName($username); + if ($userEnt && $userEnt->Gid($GetValue) == $groupEnt->Gid($GetValue)) { + RaiseError(N("%s is a primary group for user %s\n Remove the user first", $groupname, $username)); + last GLOOP + } + } + if (!$error) { $ctx->GroupDel($groupEnt); Refresh($sysfilter, $stringsearch) } + } + !$error and Gtk2->main_quit; $error = 0; }) + } ([ 'gtk-cancel', 1 ], [ 'gtk-delete', 0 ])), + ) + ); + $wg->{rwindow}->show_all; + $wg->main; } $us->{wnd}{rwindow}->set_sensitive(1); gtkset_mousecursor_normal(); -- cgit v1.2.1