From 1edd490cf871b214aafeab61d1c91cf33ec0f995 Mon Sep 17 00:00:00 2001 From: Thierry Vignaud Date: Mon, 6 Oct 2008 19:37:22 +0000 Subject: (run_as_user) open help & bug report as user instead of as root (#44497) --- rpmdrake.pm | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'rpmdrake.pm') diff --git a/rpmdrake.pm b/rpmdrake.pm index aa3e6241..267f9cd4 100644 --- a/rpmdrake.pm +++ b/rpmdrake.pm @@ -937,17 +937,26 @@ sub add_distrib_update_media { ); } +sub run_as_user { + if (my $user = $ENV{USERHELPER_UID} && getpwuid($ENV{USERHELPER_UID})) { + run_program::raw({ detach => 1 }, 'su', $user, '-c', join(' ', @_)); + } else { + run_program::raw({ detach => 1 }, @_); + } +} + + sub open_help { my ($mode) = @_; use run_program; - run_program::raw({ detach => 1 }, 'drakhelp', '--id', $mode ? "software-management-$mode" : 'software-management'); + run_as_user('drakhelp', '--id', $mode ? "software-management-$mode" : 'software-management'); N("Help launched in background"); statusbar_msg(N("The help window has been started, it should appear shortly on your desktop."), 1); } sub run_drakbug { my ($id) = @_; - run_program::raw({ detach => 1 }, 'drakbug', '--report', $id); + run_as_user('drakbug', '--report', $id); } sub strip_first_underscore { join '', map { s/_//; $_ } @_ } -- cgit v1.2.1