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/admins-lib.pl
# Functions for managing extra admins

# list_extra_admins(&domain)
# Returns a list of extra admins for some domain
sub list_extra_admins
{
local ($d) = @_;
local @rv;
opendir(DIR, "$extra_admins_dir/$d->{'id'}");
foreach my $f (readdir(DIR)) {
	if ($f =~ /^(.*)\.admin$/) {
		local %admin;
		&read_file("$extra_admins_dir/$d->{'id'}/$f", \%admin);
		$admin{'file'} = "$extra_admins_dir/$d->{'id'}/$f";
		$admin{'origname'} ||= $admin{'name'};
		push(@rv, \%admin);
		}
	}
closedir(DIR);
return @rv;
}

# create_extra_admin(&admin, &domain)
# Create an extra admin account for a domain
sub create_extra_admin
{
local ($admin, $d) = @_;
mkdir($extra_admins_dir, 0700);
mkdir("$extra_admins_dir/$d->{'id'}", 0700);
$admin->{'file'} = "$extra_admins_dir/$d->{'id'}/$admin->{'name'}.admin";
&write_file($admin->{'file'}, $admin);
&push_all_print();
&set_all_null_print();
&refresh_webmin_user($d);
&run_post_actions();
&pop_all_print();
}

# delete_extra_admin(&admin, &domain)
# Remove an extra admin account
sub delete_extra_admin
{
local ($admin, $d) = @_;
unlink($admin->{'file'});
&push_all_print();
&set_all_null_print();
&refresh_webmin_user($d);
&run_post_actions();
&pop_all_print();
}

# modify_extra_admin(&admin, &old, &domain)
# Update an extra admin
sub modify_extra_admin
{
local ($admin, $old, $d) = @_;
if ($old->{'name'} ne $admin->{'name'}) {
	unlink($old->{'file'});
	$admin->{'file'} = "$extra_admins_dir/$d->{'id'}/$admin->{'name'}.admin";
	}
&write_file($admin->{'file'}, $admin);
&push_all_print();
&set_all_null_print();
&refresh_webmin_user($d);
&run_post_actions();
&pop_all_print();
}

1;