| Server IP : 104.21.25.180 / Your IP : 162.159.115.41 Web Server : Apache/2.4.37 System : Linux almalinux.duckdns.org 4.18.0-553.111.1.el8_10.x86_64 #1 SMP Sun Mar 8 20:06:07 EDT 2026 x86_64 User : ricodeal ( 1046) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/libexec/webmin/virtual-server/ |
Upload File : |
#!/usr/bin/perl
# Switch the login to a domain's admin
require './virtual-server-lib.pl';
&ReadParse();
$d = &get_domain($in{'dom'});
&can_edit_domain($d) || &error($text{'edit_ecannot'});
&can_switch_user($d, $in{'admin'}) || &error($text{'switch_ecannot'});
if ($in{'admin'}) {
# Switch is to an extra admin .. make sure he exists
&can_edit_admins($d) || &error($text{'admins_ecannot'});
@admins = &list_extra_admins($d);
($admin) = grep { $_->{'name'} eq $in{'admin'} } @admins;
$admin || &error($text{'switch_eadmin'});
$user = $admin->{'name'};
}
else {
# To domain owner
$user = $d->{'user'};
}
&require_acl();
&get_miniserv_config(\%miniserv);
&acl::open_session_db(\%miniserv);
$skey = defined(&acl::session_db_key) ? &acl::session_db_key($main::session_id)
: $main::session_id;
($olduser, $oldtime) = split(/\s+/, $acl::sessiondb{$skey});
$olduser || &error($acl::text{'switch_eold'});
$acl::sessiondb{$skey} = "$user $oldtime $ENV{'REMOTE_ADDR'}";
dbmclose(%acl::sessiondb);
&reload_miniserv();
&run_post_actions_silently();
if ($in{'admin'}) {
&webmin_log("switch", "admin", $user);
}
else {
&webmin_log("switch", "domain", $d->{'dom'}, $d);
}
&redirect("/");