aboutsummaryrefslogtreecommitdiffstats
path: root/userdrake
diff options
context:
space:
mode:
authorDaouda Lo <daouda@mandriva.com>2003-08-04 15:59:49 +0000
committerDaouda Lo <daouda@mandriva.com>2003-08-04 15:59:49 +0000
commite76200aa5992e3c11f3344abca3620aceb08fb02 (patch)
tree026974d66d0d2d5a035982ded460f629de2f977f /userdrake
parentb4a93ce8f383e8e98613a21ca4a1f685a5d13d79 (diff)
downloaduserdrake-e76200aa5992e3c11f3344abca3620aceb08fb02.tar
userdrake-e76200aa5992e3c11f3344abca3620aceb08fb02.tar.gz
userdrake-e76200aa5992e3c11f3344abca3620aceb08fb02.tar.bz2
userdrake-e76200aa5992e3c11f3344abca3620aceb08fb02.tar.xz
userdrake-e76200aa5992e3c11f3344abca3620aceb08fb02.zip
- ask before removing group
Diffstat (limited to 'userdrake')
-rwxr-xr-xuserdrake46
1 files 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();