has("apppasswords", ["AND" => ["uid" => $_SESSION['uid'], "passid" => $_GET['delpass']]])) { $database->delete("apppasswords", ["AND" => ["uid" => $_SESSION['uid'], "passid" => $_GET['delpass']]]); } } ?>
get("change password"); ?>

" /> " /> " />
get("change pin"); ?>

get("pin explanation"); ?>
" maxlength="8" pattern="[0-9]*" inputmode="numeric" /> " maxlength="8" pattern="[0-9]*" inputmode="numeric" />
get("setup 2fa"); ?>

has2fa()) { ?>
get("2fa active") ?>
generate2fa(); $label = $SETTINGS['system_name'] . ":" . is_null($user->getEmail()) ? $user->getName() : $user->getEmail(); $issuer = $SETTINGS['system_name']; $qrCode = new QrCode($codeuri); $qrCode->setWriterByName('svg'); $qrCode->setSize(550); $qrCode->setErrorCorrectionLevel(ErrorCorrectionLevel::HIGH()); $qrcode = $qrCode->writeDataUri(); $totp = Factory::loadFromProvisioningUri($codeuri); $codesecret = $totp->getSecret(); $chunk_secret = trim(chunk_split($codesecret, 4, ' ')); ?>
get("scan 2fa qrcode") ?>
" minlength=6 maxlength=6 required />
get("manual setup"); ?>
get("secret key"); ?>
get("label"); ?>
get("issuer"); ?>
get("2fa explained"); ?>
get("enable 2fa"); ?>
insert('apppasswords', ['uid' => $_SESSION['uid'], 'hash' => password_hash($chunk_code, PASSWORD_DEFAULT), 'description' => $desc]); ?>
get("App Passwords"); ?>

build("app password setup instructions", ["app_name" => $desc]); ?>
get("username"); ?>:
get("password"); ?>
select("apppasswords", ["passid", "description"], ["uid" => $_SESSION['uid']]); ?>
get("App Passwords"); ?>

build("app passwords explained", ["site_name" => $SETTINGS['site_title']]); ?>

" required />
get("App Passwords"); ?>
0) { foreach ($activecodes as $c) { ?>
get("You don't have any app passwords."); ?>