aboutsummaryrefslogtreecommitdiffstats
path: root/userdrake
diff options
context:
space:
mode:
authorThierry Vignaud <tv@mandriva.org>2009-10-17 15:49:41 +0000
committerThierry Vignaud <tv@mandriva.org>2009-10-17 15:49:41 +0000
commit2c6b19548f93e96397808592674b589405cc2260 (patch)
treede8c744035a30aeca9c063b89af69581a8cfe65b /userdrake
parent0fdb9b66a79a12c1d72f0b779a7403afc15e9936 (diff)
downloaduserdrake-2c6b19548f93e96397808592674b589405cc2260.tar
userdrake-2c6b19548f93e96397808592674b589405cc2260.tar.gz
userdrake-2c6b19548f93e96397808592674b589405cc2260.tar.bz2
userdrake-2c6b19548f93e96397808592674b589405cc2260.tar.xz
userdrake-2c6b19548f93e96397808592674b589405cc2260.zip
(is_xguest_installed,RefreshXguest,Xguest) enable to install/uninstall xguest account from 'actions' menu
Diffstat (limited to 'userdrake')
-rwxr-xr-xuserdrake33
1 files changed, 32 insertions, 1 deletions
diff --git a/userdrake b/userdrake
index 01f9586..8e18fc5 100755
--- a/userdrake
+++ b/userdrake
@@ -89,9 +89,16 @@ my $gtree_model = Gtk2::ListStore->new("Glib::String", "Glib::Int", "Glib::Strin
my ($usertree, $grouptree);
$usertree = CreateTree($utree_model); $grouptree = CreateTree($gtree_model);
# slightly verbatimed from control-center
+
+my %xguest_labels = (
+ to_install => N("/_Install guest account"),
+ installed => N("/_Uninstall guest account"),
+);
+
my %options = (
'edit' => [ N("/_Actions"), N("/_Edit") ],
'delete' => [ N("/_Actions"), N("/_Delete") ],
+ 'xguest' => [ N("/_Actions"), $xguest_labels{installed} ],
'filter' => [ N("/_Options"), N("/_Filter system users") ]
);
my %buttorcheck;
@@ -104,6 +111,7 @@ my ($menu, $factory) = create_factory_menu($::isEmbedded ? $::Plug : $us->{wnd}{
[ N("/_Actions") . N("/Add _Group"), undef, \&AddGroup, undef, '<Item>' ],
[ join('', @{$options{edit}}), undef, \&Edit, undef, '<Item>' ],
[ join('', @{$options{delete}}), undef, \&Delete, undef, '<Item>' ],
+ [ join('', @{$options{xguest}}), undef, \&Xguest, undef, '<Item>' ],
[ N("/_Options"), undef, undef, undef, '<Branch>' ],
[ join('', @{$options{filter}}), undef, sub {
$sysfilter = $buttorcheck{filter}->get_active;
@@ -115,7 +123,7 @@ my ($menu, $factory) = create_factory_menu($::isEmbedded ? $::Plug : $us->{wnd}{
[ N("/_Help") . N("/_About..."), undef, \&About, undef, '<Item>' ]
)
);
-%buttorcheck = map { $_ => $factory->get_widget("<main>" . join '', map { s/_//; $_ } @{$options{$_}}) }('edit', 'delete', 'filter');
+%buttorcheck = map { $_ => $factory->get_widget("<main>" . join '', map { s/_//; $_ } @{$options{$_}}) }('edit', 'delete', 'filter', 'xguest');
if (defined $buttorcheck{filter}) {
$buttorcheck{filter}->set_active($sysfilter);
@@ -176,6 +184,8 @@ foreach ([ N("Add User"), N("Add a user to the system"), 'user_add', \&AddUser ]
my ($_tbuser, $_tbgroup, $tbedit, $tbdel, $_tbref) = @toolbwg;
GrayDelEdit();
+RefreshXguest();
+
my $ctx = USER::ADMIN->new;
$fbut->signal_connect('clicked', sub { $stringsearch = $filter->get_text; Refresh($sysfilter, $stringsearch) });
Refresh($sysfilter, $stringsearch);
@@ -188,14 +198,25 @@ undef $window_splash;
$us->{wnd}->main;
ugtk2->exit(0);
+sub is_xguest_installed() {
+ -e '/etc/security/namespace.d/guest.conf';
+}
+
sub GrayDelEdit() {
foreach ($tbedit, $tbdel, $buttorcheck{edit}, $buttorcheck{delete}) { defined $_ and $_->set_sensitive(0) }
}
+sub RefreshXguest() {
+ my $label = $xguest_labels{is_xguest_installed() ? 'installed' : 'to_install'};
+ $label =~ s!^/!!;
+ $buttorcheck{xguest}->get_child->set_label($label);
+}
+
sub TreeUnselect {
my $treev = shift;
$treev->get_selection->unselect_all;
GrayDelEdit();
+ RefreshXguest();
}
sub NotebookSwitch() {
@@ -257,6 +278,7 @@ sub Refresh {
RefreshUsersFull($filt, $strfilt);
RefreshGroupsFull($filt, $strfilt);
GrayDelEdit();
+ RefreshXguest();
}
sub GetFaceIcon {
@@ -703,6 +725,15 @@ sub NewWindow {
$dialog;
}
+sub Xguest() {
+ if (is_xguest_installed()) {
+ run_program::run('rpm', '-e', 'xguest');
+ } else {
+ run_program::run('gurpmi2', 'xguest');
+ }
+ RefreshXguest();
+}
+
sub Edit() {
my $w = NewWindow(N("Edit Groups / Users"));
my $model = Gtk2::ListStore->new("Gtk2::Gdk::Pixbuf", "Glib::String", "Glib::Int");