= Administration der Online-Umgebung :author: Thomas Niesenhaus include::kapitel-settings.adoc[] == Nutzerinnen und Nutzer zentral anlegen Beim Upload einer CSV werden diverse benutzerbezogene Kriterien vom Controller überprüft und bei Bedarf angepasst. Der CSV-Upload findet getrennt nach Lehrkräften sowie Schülerinnen und Schülern statt (in Umsetzung). Es muss beim Upload der Radiobutton gesetzt werden (Lehrkräfte oder Schülerinnen und Schüler). Dadurch wird Nutzerinnen und Nutzern auch die jeweilige Rolle zugewiesen. === CSV-Upload Zunächst findet ein Abgleich der hochgeladenen CSV-Datei statt. Dabei wird wie folgt verfahren: * Benutzer in DB und CSV vorhanden, dann Aktualisierungen übernehmen * Benutzer in DB vorhanden, aber nicht in CSV, dann Benutzer/in deaktivieren * Benutzer in DB nicht vorhanden, aber in CSV, dann Nutzer/-in neu anlegen === Nutzer Folgende Daten werden aus der CSV-Datei importiert, verarbeitet, generiert und gespeichert: * Vorname (importiert) * Nachname (importiert) * Primärschlüssel (importiert) * Klassenzuordnung (importiert) * E-Mail Adresse (importiert, falls vorhanden, ansonsten Vergabe einer Platzhalter E-Mail Adresse) * Initialpasswort (generiert) * Rolle (ergibt sich aus dem Upload) ==== Nutzer anlegen Dies aus der CSV übernommenen Vor- und Nachnamen werden: * transponiert * Umlaute werden entfernt * doppelte Vornamen werden entfernt. Z.B.: aus "Ben Marlon MüllerHofholz" wird "Ben.MuellerHofholz" * Der Benutzer jedes Nutzers Users wird nach folgendem Schema erzeugt: Vorname.Nachname * Bei identischen Vornamen, Nachnamen und/oder Geburtsnamen jedoch unterschiedlicher ID wird an den generierten Nutzernamen eine fortlaufende Nummer angehängt. ==== Nutzerzuordnung Beim Import von Nutzern aus der CSV-Datei werden diese bereits in die richtigen Klassen (Organisationen) eingepflegt. Nutzer, die sowohl in der CSV, als auch in der DB vorhanden sind, werden bei Bedarf neuen Klassen (Neues Schuljahr) oder zusätzlichen Organisationen (zB neue Lerngruppe) zugeordnet. Vorhandene Nutzer (DB + CSV) werden aus allen, nicht in der CSV zu diesem jeweiligen Nutzer hinterlegten Klassen gelöscht. == Passwörter === Initialpasswort Beim Import wird automatisch ein Initialpasswort generiert, welches bei der ersten Anmeldung geändert werden muss. Die Lehrkraft erhält per E-Mail eine Liste mit den Nutzerdaten der Klasse(n) in denen sie unterrichtet. === Passwortreset Der Controller spielt je nach Lehrkraft die von ihr unterrichteten Klassen (Organisationen) in der GUI aus. Nach Auswahl der Klasse (Organisation) zeigt der Controller die Schülerinnen und Schüler der Klasse (Organisation) an. Nun kann die Lehrkraft in der jeweiligen Spalte der Schülerin oder des Schülers den Button „Passwort zurücksetzen“ anklicken. Anschließend wird der Lehrkraft ein temporäres Passwort angezeigt, welches bei der nächsten Anmeldung geändert werden muss. == Klassen Klassen (Organisationen) werden nach folgendem Schema erstellt: * Klassen (Organisationen) die beim CSV-Import erzeugt werden, erhalten automatisch ein Suffix mit dem Erstellungsjahr. Muster: 10b-2023 * Jede automatisch angelegte Klasse wird in einer Organisation abgebildet und die entsprechenden Nutzer werden dieser Organisation zugeordnet. * Eine Organisation "Lehrkräfte" wird einmalig erstellt. Die importierten Lehrkräften werden der Organisation automatisch zugeordnet. Schülerinnen und Schüler können keine Klassen anlegen. == Repository Jede Organisation (Klasse) erhält automatisch ein Repository. Der Besitzer des Repository ist die unterrichtende Lehrkraft. Repositories werden nach folgendem Schema erzeugt: * Der Zeitpunkt der Repoanlage wird automatisch im Repotitel als Suffix angehängt, sofern die Anlage durch einen Schüler erfolgt. Z.B. Robotik-2023 * Repos die in Organisationen liegen können ausschließlich von Lehrkräften erzeugt werden. * Maximal 50 Repos je Nutzer. == Löschroutine Die automatische Löschung von Klassen (Organisationen), Repos und Nutzern wird von einer Routine übernommen. Dabei wird nach folgendem Schema vorgegangen: * *Organisationen*: ** Organisationen mit - im Namen oder automatisch über CSV erzeugte Organisationen werden automatisch am 30. September des nachfolgenden Jahres archiviert. ** Wenn eine langfristige Organisation benötigt wird (z. B. "Informatik-AG"), muss diese beim Schul-Verwalter beantragt werden. ** Nach 365 Tagen erfolgt die automatische Löschung von archivierten Inhalten, dies kann nur durch den Schul-Verwalter verhindert werden. ** Die Organisation "Lehrer" beinhaltet keine automatische Archivierung von Repos. * *Nutzer*: ** 365 Tage nach Deaktivierung erfolgt die automatische Löschung von deaktivierten Benutzern und deren Inhalten, dies kann nur durch den Schul-Verwalter verhindert werden * *Repos*: ** Repos, die In Organisationen liegen, werden 1 Jahr nach der Anlage automatisch archiviert, wenn sie ein - im Namen tragen. ** 365 Tage nach Archivierung erfolgt die automatische Löschung von archivierten Inhalten, dies kann nur durch den Schul-Verwalter verhindert werden. Logs ** Zugriffs-Logs der Schulinstanz werden automatisch nach 21-90 Tagen gelöscht == Quota Die Löschroutine trägt einen wesentlichen Teil dazu bei, dass keine unnötigen Daten dauerhaft gespeichert werden. Zusätzlich wird GitCamp eine Quota beinhalten (Aktuell noch in der Testphase). Die Quota kann über eine Weboberfläche innerhalb GitCamps geändert werden. Für jede Instanz ist die Quota bei der Einrichtung identisch. Sollte die Quota von einem Nutzer überschritten werden, so werden der Schul-Admin und der Nutzer per E-Mail benachrichtigt.