}
}
+# webmin_command_as_user(user, env, command)
+# Return a command as some user with su if this is webmin, or un-changed for
+# usermin
+sub webmin_command_as_user
+{
+my ($user, $env, @args) = @_;
+if ($module_info{'usermin'}) {
+ return join(" ", @args);
+ }
+else {
+ return &command_as_user($user, $env, @args);
+ }
+}
+
1;
$err = &text('upload_ecmd', "unzip");
}
else {
- open(OUT, &command_as_user($uinfo[0], 0, "(cd $qdir && unzip -o $qpath)")." 2>&1 </dev/null |");
+ open(OUT, &webmin_command_as_user($uinfo[0], 0, "(cd $qdir && unzip -o $qpath)")." 2>&1 </dev/null |");
while(<OUT>) {
$out .= $_;
if (/^\s*[a-z]+:\s+(.*)/) {
$err = &text('upload_ecmd', "tar");
}
else {
- open(OUT, &command_as_user($uinfo[0], 0, "(cd $qdir && tar xvf $qpath)")." 2>&1 </dev/null |");
+ open(OUT, &webmin_command_as_user($uinfo[0], 0, "(cd $qdir && tar xvf $qpath)")." 2>&1 </dev/null |");
while(<OUT>) {
$out .= $_;
if (/^(.*)/) {
$err = &text('upload_ecmd', "lha");
}
else {
- open(OUT, &command_as_user($uinfo[0], 0, "(cd $qdir && lha xf $qpath)")." 2>&1 </dev/null |");
+ open(OUT, &webmin_command_as_user($uinfo[0], 0, "(cd $qdir && lha xf $qpath)")." 2>&1 </dev/null |");
while(<OUT>) {
$out .= $_;
if (/(\S[^\t]*\S)\s+\-\s+/) {
$err = &text('upload_ecmd', $zipper);
}
else {
- open(OUT, &command_as_user($uinfo[0], 0, "(cd $qdir && $zipper -c $qpath | tar xvf -)")." 2>&1 </dev/null |");
+ open(OUT, &webmin_command_as_user($uinfo[0], 0, "(cd $qdir && $zipper -c $qpath | tar xvf -)")." 2>&1 </dev/null |");
while(<OUT>) {
$out .= $_;
if (/^(.*)/) {