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: //proc/thread-self/root/usr/share/webmin/webmin/change_twofactor.cgi
#!/usr/bin/perl
# Enable two-factor authentication

require './webmin-lib.pl';
&ReadParse();
&error_setup($text{'twofactor_err'});
&get_miniserv_config(\%miniserv);

# Validate inputs
if ($in{'twofactor_provider'}) {
	($prov) = grep { $_->[0] eq $in{'twofactor_provider'} }
		       &list_twofactor_providers();
	$prov || &error($text{'twofactor_eprovider'});
	$vfunc = "validate_twofactor_apikey_".$in{'twofactor_provider'};
	$err = defined(&$vfunc) && &$vfunc(\%in, \%miniserv);
	&error($err) if ($err);
	}
else {
	# Don't disable if any users have twofactor enabled
	&foreign_require("acl");
	@twos = grep { $_->{'twofactor_provider'} && $_->{'twofactor_id'} }
		     &acl::list_users();
	if (@twos) {
		&error(&text('twofactor_eusers',
			     join(" ", map { $_->{'name'} } @twos)));
		}
	}

# Save settings
&lock_file($ENV{'MINISERV_CONFIG'});
$miniserv{'twofactor_provider'} = $in{'twofactor_provider'};
&put_miniserv_config(\%miniserv);
&unlock_file($ENV{'MINISERV_CONFIG'});

$msg = $text{'restart_done'}."<p>\n";
if ($in{'twofactor_provider'}) {
	$msg .= &text('twofactor_enrolllink',
		      "../acl/twofactor_form.cgi")."<p>\n";
	$mfunc = "message_twofactor_apikey_".$in{'twofactor_provider'};
	if (defined(&$mfunc)) {
		$msg .= &$mfunc(\%miniserv)."<p>\n";
		}
	elsif ($prov->[2]) {
		$msg .= &text('twofactor_url', $prov->[1], $prov->[2])."<p>\n";
		}
	}
&show_restart_page($text{'twofactor_title'}, $msg);

&webmin_log("twofactor", undef, undef, \%in);