diff options
author | Daouda Lo <daouda@mandriva.com> | 2003-07-28 14:49:05 +0000 |
---|---|---|
committer | Daouda Lo <daouda@mandriva.com> | 2003-07-28 14:49:05 +0000 |
commit | 480500e4455bdcd199a48b3968ed70b59336c07a (patch) | |
tree | 0781623ffca2d96da3d9668977d11b0fda4d34c6 | |
parent | eab0d56db48d6a127fea57f6a8b41b1ff80bba96 (diff) | |
download | userdrake-480500e4455bdcd199a48b3968ed70b59336c07a.tar userdrake-480500e4455bdcd199a48b3968ed70b59336c07a.tar.gz userdrake-480500e4455bdcd199a48b3968ed70b59336c07a.tar.bz2 userdrake-480500e4455bdcd199a48b3968ed70b59336c07a.tar.xz userdrake-480500e4455bdcd199a48b3968ed70b59336c07a.zip |
- We ask for removing user now before really deleting it
Option are delete home dir to and delete spool mail.
-rwxr-xr-x | userdrake | 49 |
1 files changed, 36 insertions, 13 deletions
@@ -33,7 +33,7 @@ use interactive; use POSIX qw(mktime ceil); use USER; #Only for Debugging -use Devel::Peek; +#use Devel::Peek; use Gtk2::Gdk::Keysyms; my $conffile = '/etc/sysconfig/userdrake'; @@ -202,9 +202,8 @@ sub Refresh { sub GetFaceIcon { my $i = 0; my @m; my @icones = @m = any::facesnames(''); - print "@icones\n"; gtkpack_(my $hb = Gtk2::HBox->new(0, 2), - 0, Gtk2::Label->new(N("Choose Icon"). ' '), + 0, Gtk2::Label->new(N("Click on the icon to change it"). ' '), 0, my $b = Gtk2::Button->new ); my $set = sub { @@ -218,7 +217,6 @@ sub GetFaceIcon { $b->signal_connect(clicked => sub { $set->($us->{o}->{iconval} = $icones[$i++]); defined $icones[$i+1] or $i = 0; - Dump($us->{o}->{iconval}); }); $hb } @@ -439,17 +437,42 @@ sub Delete { $us->{wnd}{rwindow}->set_sensitive(0); gtkset_mousecursor_wait(); $error = 0; if ($page <= 0) { + my ($checkhome, $checkspool); my $username = GetNameEntFromIter($usertree, $utree_model, 0); my $userEnt = $ctx->LookupUserByName($username); - $ctx->UserDel($userEnt); - UpdateOrDelUsersInGroup($username, 1); - #Let's check out the user's primary group - my $usergid = $userEnt->Gid($GetValue); - my $groupEnt = $ctx->LookupGroupById($usergid); my $member = $groupEnt->MemberName(1, 0); - if ($groupEnt && (scalar(@$member) == 0)) { $groupEnt->Gid($GetValue) > 499 and $ctx->GroupDel($groupEnt) }; - 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); - Refresh($sysfilter, $stringsearch) +# Old Delete version + #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})); + 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)), + 0, $checkhome = Gtk2::CheckButton->new(N("Delete Home Directory :%s", $userEnt->HomeDir($GetValue))), + 0, $checkspool = Gtk2::CheckButton->new(N("Delete Mailbox :/var/spool/mail/%s", $username)), + 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) { + $ctx->UserDel($userEnt); + UpdateOrDelUsersInGroup($username, 1); + #Let's check out the user's primary group + my $usergid = $userEnt->Gid($GetValue); + my $groupEnt = $ctx->LookupGroupById($usergid); + my $member = $groupEnt->MemberName(1, 0); + if ($groupEnt && (scalar(@$member) == 0)) { $groupEnt->Gid($GetValue) > 499 and $ctx->GroupDel($groupEnt) }; + $checkhome->get_active() and $ctx->Clean($userEnt); + $checkspool->get_active() and $ctx->Clean($userEnt); + Refresh($sysfilter, $stringsearch) + } + !$error and Gtk2->main_quit; $error = 0; }) + } ([ 'gtk-cancel', 1 ], [ 'gtk-delete', 0 ])), + ) + ); + $w->{rwindow}->show_all; + $w->main; } elsif ($page == 1) { my $groupname = GetNameEntFromIter($grouptree, $gtree_model, 0); my $groupEnt = $ctx->LookupGroupByName($groupname); |