{% extends "basis.html" %} {# Assistent „Konto schützen“ (Konzept, Zweiter Faktor): Einstieg mit Wahl (1/3) · Passkey oder App (2/3) · Wiederherstellungscodes (3/3) · Abschluss (S-15). Eine Aufgabe je Schritt; Fokus beim Laden auf der h1 (anmeldung.js), Fortschritt als Liste mit aria-current. Alle Formulare über den Settings-Vorschalter (Frische, „letzter Weg“, Häkchen bei den Codes). 23.10.2026 – mit `ziel` (Positivliste, nur „speicher“): Sicherheitsschritt vor dem Onlinespeicher. Passkey oder App (1/2) · Wiederherstellungscodes (2/2; nach einem Passkey überspringbar) · Abschluss „bereit“ OHNE strengen Schutz (der Mail-Code bleibt allein gültig). `zq` hängt `&ziel=…` an jeden Link und jedes versteckte weiter/hier-Feld. #} {% set nr = ({"passkey": 1, "app": 1, "codes": 2, "bereit": 2, "einstieg": 1, "fertig": 2} if ziel else {"einstieg": 1, "passkey": 2, "app": 2, "codes": 3, "fertig": 3, "bereit": 3})[schritt] %}{% set von = 2 if ziel else 3 %}{% set schritt_text = ta.s_schritt_von | replace("{m}", von | string) %} {% block titel %}{% if v and v.fehler %}{{ ta.fehler_praefix }}{% endif %}{% if nr and schritt not in ("fertig", "bereit") %}{{ schritt_text | replace("{n}", nr | string) }}: {% endif %}{{ ta.titel.sichern if ziel or schritt == "bereit" else ta.titel.schuetzen }} – Timbre{% endblock %} {% block kopf %}{% if aussehen %}{% endif %}{% endblock %} {% block hauptklasse %} class="an-haupt"{% endblock %} {% block inhalt %}{% set nr = ({"passkey": 1, "app": 1, "codes": 2, "bereit": 2, "einstieg": 1, "fertig": 2} if ziel else {"einstieg": 1, "passkey": 2, "app": 2, "codes": 3, "fertig": 3, "bereit": 3})[schritt] %}{% set von = 2 if ziel else 3 %}{% set schritt_text = ta.s_schritt_von | replace("{m}", von | string) %}
{{ h.text }}
{% endfor %}{% endif %} {% if schritt == "einstieg" %}{{ ta.s_einstieg_text }}
{{ ta.s_freiwillig }}
{% elif schritt == "passkey" %} {% if wege.passkey %}{{ ta.s_pk_da }}
{% else %}{{ ta.s_pk_text }}
{% endif %} {% elif schritt == "app" %} {% if wege.totp %}{{ ta.s_app_da }}
{% else %}{{ ta.s_codes_text }}
{# Sicherheitsschritt: nach einem Passkey sind die Codes ein Angebot (überspringbar); nach der App Pflicht – ohne Codes sperrt ein verlorenes Handy aus, sobald der strenge Schutz an ist #} {% set codes_frei = ziel and wege.passkey and not wege.totp %} {% if codes_frei %}{{ ta.s_codes_angebot }}
{% endif %} {% if v.codes and v.codes_offen %}{{ ta.s_codes_ueberspringen }}
{% endif %} {% elif schritt == "bereit" %} {# Abschluss vor dem Speicher: ehrlich – eingerichtet ist ein Zusatzweg, der Mail-Code gilt weiter allein #}{{ ta.s_bereit_text }}
{% if codes_da %}{{ ta.s_codes_da }}
{% endif %}{{ ta.s_streng_text }} {{ ta.s_streng_link }}
{% elif schritt == "fertig" %} {% if codes_da %}{{ ta.s_codes_da }}
{% endif %} {% if nutzer.schutz_an %}{{ ta.s_streng_ist_an }}
{{ ta.s_fertig_text }}
{# S-16: „wie bisher mit Passkey“ nur, wenn es einen Passkey gibt; S-17: wartende Konten zurück zur Warteseite #}{{ ta.s_eingerichtet }}
{{ ta.s_streng_erklaerung }}
{% endif %} {% endif %} {% if schritt not in ("einstieg", "fertig", "bereit") %}{% endif %} {% if schritt in ("einstieg", "fertig") %}{{ ta.geraet_verloren_text }}