passkeyCount = count} onReauthRequired={handleReauthRequired} /> totpEnabled = enabled} /> hasPassword = has} onReauthRequired={handleReauthRequired} /> {#if ssoProviders.length > 0}

{$_('oauth.sso.linkedAccounts')}

{#if linkedAccountsLoading}
{$_('common.loading')}
{:else} {#if linkedAccounts.length > 0}
    {#each linkedAccounts as account}
  • {account.provider_name} {account.provider_username} {$_('oauth.sso.linkedAt')} {formatDate(account.created_at)}
  • {/each}
{:else}

{$_('oauth.sso.noLinkedAccounts')}

{/if}

{$_('oauth.sso.linkNewAccount')}

{#each ssoProviders as provider} {@const isLinked = linkedAccounts.some(a => a.provider === provider.provider)} {/each}
{/if}
{/if} {#if hasMfa}

{$_('security.appCompatibility')}

{$_('security.legacyLoginDescription')}

{#if !legacyLoginLoading}
{$_('security.legacyLogin')} {#if allowLegacyLogin} {$_('security.legacyLoginOn')} {:else} {$_('security.legacyLoginOff')} {/if}
{#if totpEnabled && allowLegacyLogin}
{$_('security.legacyLoginWarning')}
{/if}
{$_('security.legacyAppsTitle')}

{$_('security.legacyAppsDescription')}

{/if}
{/if}

{$_('security.trustedDevices')}

{$_('security.trustedDevicesDescription')}

{#if trustedDevicesLoading}
{$_('common.loading')}
{:else if trustedDevices.length === 0}

{$_('trustedDevices.noDevices')}

{$_('trustedDevices.noDevicesHint')}

{:else}
{#each trustedDevices as device}
{#if editingDeviceId === device.id}
{:else} {device.friendlyName || parseUserAgent(device.userAgent)} {/if}
{#if device.userAgent} {parseUserAgent(device.userAgent)} {/if} {#if device.trustedAt} {$_('trustedDevices.trustedSince')} {formatDate(device.trustedAt)} {/if} {$_('trustedDevices.lastSeen')} {formatDate(device.lastSeenAt)} {#if device.trustedUntil} {@const daysRemaining = getDaysRemaining(device.trustedUntil)} {#if daysRemaining <= 0} {$_('trustedDevices.expired')} {:else if daysRemaining === 1} {$_('trustedDevices.tomorrow')} {:else} {$_('trustedDevices.inDays', { values: { days: daysRemaining } })} {/if} {/if}
{/each}
{/if}