'; echo "
\n"; $tabindex = 1; $container = new htmlResponsiveRow(); $container->add(new htmlTitle(_("Webauthn devices")), 12); $userDn = $_SESSION['ldap']->getUserName(); $database = new PublicKeyCredentialSourceRepositorySQLite(); $results = $database->searchDevices($userDn); $container->addVerticalSpacer('0.5rem'); $buttonGroup = new htmlGroup(); $reloadButton = new htmlButton('reload', _('Reload')); $reloadButton->setIconClass('refreshButton'); $buttonGroup->addElement($reloadButton); $container->add($buttonGroup, 12); $container->addVerticalSpacer('2rem'); if (empty($results)) { $container->add(new htmlStatusMessage('INFO', _('No devices found.')), 12); } else { $titles = array( _('Registration'), _('Last use'), _('Delete') ); $data = array(); $id = 0; foreach ($results as $result) { $delButton = new htmlButton('deleteDevice' . $id, 'delete.png', true); $delButton->addDataAttribute('credential', $result['credentialId']); $delButton->addDataAttribute('dn', $result['dn']); $delButton->addDataAttribute('dialogtitle', _('Remove device')); $delButton->addDataAttribute('oktext', _('Ok')); $delButton->addDataAttribute('canceltext', _('Cancel')); $delButton->setOnClick('window.lam.webauthn.removeOwnDevice(event);'); $data[] = array( new htmlOutputText(date('Y-m-d H:i:s', $result['registrationTime'])), new htmlOutputText(date('Y-m-d H:i:s', $result['lastUseTime'])), $delButton ); $id++; } $table = new htmlResponsiveTable($titles, $data); $tableDiv = new htmlDiv('webauthn_results', $table); $tableDiv->addDataAttribute('sec_token_value', getSecurityTokenValue()); $container->add($tableDiv, 12); } $container->addVerticalSpacer('2rem'); $confirmationDiv = new htmlDiv('webauthnDeleteConfirm', new htmlOutputText(_('Do you really want to remove this device?')), array('hidden')); $container->add($confirmationDiv, 12); parseHtml(null, $container, array(), false, $tabindex, 'user'); echo '
'; echo ''; include __DIR__ . '/../../lib/adminFooter.inc'; ?>