Files
lernbar/docs/ABNAHME.md
T
Florian WildeandClaude Opus 5.5 44e6c8bb79 Module abschaltbar machen
Merkkarten, Praxisaufgaben, Checklisten, Berichtsheft, Lernzielkontrollen
und Feedbackgespraech lassen sich unter Verwaltung -> Module fuer die ganze
Lern-Bar ab- und einschalten. Wochenplan, Handouts, Glossar, Auswertung und
Verwaltung bleiben immer an.

Gesperrt wird an drei Stellen, nicht im Layout (Next rendert Layouts beim
Seitenwechsel darunter nicht neu): Seiten mit erfordereModul, Routen fuer
PDF, Anhaenge und Lernstand mit modulAn, alle 37 Serveraktionen der Module
mit pruefeModul. Die Anmeldepruefung kommt jeweils zuerst, damit ein
Unangemeldeter nicht am 404 abliest, was abgeschaltet ist.

Ein abgeschaltetes Modul traegt nirgends bei: Wochenplan, Fortschritt,
Was-wartet, Mein Stand, Ergebnisverlauf, Rahmenplanabdeckung, Vorschlaege
fuers Berichtsheft, Karten im Handout, Kurzbefehle im Manifest. Die
Lernstand-Schnittstelle antwortet mit 410, das Geraet verwirft daraufhin
seine Offline-Warteschlange. Abschalten loescht nichts.

Gespeichert in modul_einstellung (Migration 0010); fehlt die Zeile, ist das
Modul an, eine bestehende Datenbank verhaelt sich also wie vorher.

12 Tests fuer die Regeln, Abschnitt A8 im Abnahmelauf, Anleitung Kapitel 9
mit Bildschirmfoto, README, E43.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 16:58:32 +02:00

3.1 KiB

Abnahmeprotokoll

Erzeugt am 2026-10-05 14:48 Uhr

Erzeugt von scripts/pruefungen/abnahme.mjs gegen eine frische, leere Datenbank.

A1 · Aus dem Nichts aufsetzbar

  • ✓ Das erste Ausbilderkonto entsteht auf der Kommandozeile — ohne Fehler
  • ✓ Die Datenbank wurde angelegt und die Migrationen liefen an
  • ✓ Die Anwendung startet und meldet sich gesund
  • ✓ Heile Inhalte werden ohne Beanstandung gelesen — Inhalte in Ordnung
  • ✓ Ein Inhaltsfehler lässt die Prüfung fehlschlagen — Ende 1
  • ✓ Die Meldung nennt die Datei — kaputte-inhalte/handouts/N3-subnetting-rechnen.md:7 (rahmenplan)
  • ✓ Die Meldung nennt die richtige Zeile — erwartet Zeile 7
  • ✓ Die Meldung nennt den fehlerhaften Wert
  • ✓ Die Meldung sagt, wo die gültigen Werte stehen

A2 · Zwei Rollen, keine Selbstregistrierung

  • ✓ Die Anmeldeseite bietet keine Registrierung
  • ✓ Ohne Anmeldung führt jeder Pfad zur Anmeldung — HTTP 307
  • ✓ Der Ausbilder meldet sich an

A3 · Der Ausbilder legt Konten an

  • ✓ Der Azubi steht in der Verwaltung
  • ✓ Das Passwort ist in der Oberfläche nirgends mehr zu sehen
  • ✓ In der Datenbank steht kein Klartextpasswort
  • ✓ Das Passwort liegt als Argon2id-Hash — $argon2id$v=19$m=19456,t=2,p=1

A4 · Der Azubi arbeitet

  • ✓ Der Azubi meldet sich mit dem vergebenen Passwort an
  • ✓ Ein Handout lässt sich als gelesen markieren
  • ✓ Eine Merkkarte lässt sich bewerten — Zuletzt: kommt morgen.

A5 · Aufgabe abgeben und abnehmen

  • ✓ Der Azubi hält seine Arbeit in Notizen fest
  • ✓ Der Azubi meldet die Aufgabe zur Abnahme
  • ✓ Die Aufgabe erscheint beim Ausbilder zur Abnahme
  • ✓ Der Ausbilder nimmt die Aufgabe ab
  • ✓ Für den Azubi ist die abgenommene Aufgabe gesperrt
  • ✓ Die Abnahme schlägt in der Rahmenplanabdeckung durch
  • ✓ Lücken im Lehrgang werden getrennt ausgewiesen

A6 · Rechte serverseitig

  • ✓ Der Azubi kommt nicht in die Verwaltung — HTTP 307

A7 · Berichtsheft

  • ✓ Der Azubi legt das Wochenblatt der laufenden Woche an
  • ✓ Ein Wochenblatt lässt sich öffnen
  • ✓ Das Wochenblatt kommt als PDF heraus — HTTP 200, 2646 Bytes

A8 · Module abschalten

  • ✓ Der Ausbilder schaltet das Berichtsheft ab
  • ✓ Das Berichtsheft verschwindet aus der Navigation
  • ✓ Die Seite ist für beide Rollen gesperrt, nicht nur ausgeblendet — Azubi HTTP 404, Ausbilder HTTP 404
  • ✓ Auch das PDF ist gesperrt — HTTP 404
  • ✓ Ohne Merkkarten zeigt das Handout keine Karten
  • ✓ Ein Gerät mit gesammelten Bewertungen erfährt, dass es sie verwerfen soll — HTTP 410
  • ✓ Nach dem Einschalten ist das Wochenblatt unverändert wieder da — HTTP 200

A9 · Sicherung zurückspielen

  • ✓ Die Sicherung läuft durch — lernbar-20261005-164818.tar.gz
  • ✓ Zum Beweis wird der Datenbestand beschädigt — 2 → 1 Konten
  • ✓ Die Rückspielung läuft durch — ohne Fehler
  • ✓ Der gelöschte Azubi ist wieder da — Tim Vogt
  • ✓ Auch der Lernverlauf kam mit zurück — 1 Einträge
  • ✓ Der überschriebene Stand wurde zur Seite gelegt, nicht gelöscht — verdraengt-20261005-164821

43 von 43 Prüfungen erfüllt.