aboutsummaryrefslogtreecommitdiffstats
path: root/userdrake
diff options
context:
space:
mode:
authorDaouda Lo <daouda@mandriva.com>2003-07-28 14:49:05 +0000
committerDaouda Lo <daouda@mandriva.com>2003-07-28 14:49:05 +0000
commit480500e4455bdcd199a48b3968ed70b59336c07a (patch)
tree0781623ffca2d96da3d9668977d11b0fda4d34c6 /userdrake
parenteab0d56db48d6a127fea57f6a8b41b1ff80bba96 (diff)
downloaduserdrake-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.
Diffstat (limited to 'userdrake')
-rwxr-xr-xuserdrake49
1 files changed, 36 insertions, 13 deletions
diff --git a/userdrake b/userdrake
index d88070d..6d9011c 100755
--- a/userdrake
+++ b/userdrake
@@ -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);