HEX
Server: Apache
System: Linux vps-cdc32557.vps.ovh.ca 5.15.0-156-generic #166-Ubuntu SMP Sat Aug 9 00:02:46 UTC 2025 x86_64
User: hanode (1017)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //usr/share/webmin/virtual-server/switch_user.cgi
#!/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("/");