Evaluationssystem: Generierung der Zufalls-IDs

Viele Wege führen nach Rom. Ich stelle einen einfachen vor (Bulkupload) und einen komplexeren (LDAP). Bei LDAP setze ich etwas mehr Kenntnisse auf der Konsole voraus.

Bei beiden Wegen muss man auf jeden Fall die Serienbrieffunktion einer Textverarbeitung beherrschen, um die IDs dann in individualisierter Form an die Umfragebeteiligten ausgeben zu können. Natürlich wird  auch gleich die Fantasieemailadresse deaktiviert (emailstop).

Die eigentliche Zufallsroutine sieht so aus:

function getrandstr($length) {
$newpass = „“;
$laenge=$length;
$string=“abcdefghikmnopqrstuvwxyz23456789″;
mt_srand((double)microtime()*1000000);
for ($i=1; $i <= $laenge; $i++) {
$newpass .= substr($string, mt_rand(0,strlen($string)-1), 1);
}
return $newpass;
}

Aus dem Zeichenvorrat wurde alle Zeichen entfernt, die sich verwechseln lassen, etwa „1“ und „l“ (kleines L und die Zahl Eins) oder „0“ und „O“ (Null und Buchstabe O), damit es später nicht zu Tippfehlern kommt.

Ich habe das Script für mich inzwischen so weiterentwickelt, dass es nicht nur die IDs selbst, sondern auch noch via fpdf die Briefe für die Umfragebeteiligten als hübsches PDF erstellt – ein Klick, alles zum Drucken/Verteilen fertig. Da erfahrungsgemäß jede Schule ihr individuelles Layout wünscht, erscheint mir der Weg über die Serienbrieffunktion für die Allgemeinheit der gangbarste zu sein.

Wir nutzen für die Umfragen übrigens ein separates „Müllmoodle“, dessen Datenbank uns nicht viel bedeutet und gerne „versaut“ werden darf. Nebenbei entfällt gleich das Risiko, dass Dritte ungewollt Zugriff auf die Ergebnisse erhalten. Das Rechtesystem von Moodle wird nämlich gerne einmal unüberschaubar…

Möglichkeit A: Per Bulkupload – der einfache Weg

Wer nicht über einen eigenen LDAP-Server verfügt oder sich dessen Einrichtung nicht zutraut, kann die benötigten anonymen IDs ganz einfach im Browser erstellen. Dazu habe ich ein kleines Script geschrieben, welches diese Aufgabe recht ordentlich erledigt – aber nicht besonders sexy aussieht. Dieses Script steht jedem zur freien Verfügung:

klick

Es wird Ihnen eine CSV-Datei geliefert die Sie auf einfache Weise dazu nutzen können, per Bulkupload die anonymisierten IDs zu generieren. Gleichzeitig können Sie mit dieser CSV-Datei einen Serienbrief für Ihre Umfrageteilnehmenden, etwa in OpenOffice erstellen, indem Sie diese Datei einfach als Datenquelle nutzen.

Möglichkeit B: Per LDAP-Anbindung (der schwierigere Weg)

Wir brauchen wieder ein paar Pakete. Also auf die Kommandozeile gegangen und mutig getippt:

apt-get install php5-ldap php5-cli php5-cgi

Dann gibt es ein etwas umfangreicheres Script mit einem relativ großen Konfigurationsteil, für den einige Daten benötigt werden (in Klammern stehen die Beispiel aus dem ersten Teil dieser Anleitung):

  1. Der LDAP-User (admin)
  2. Das LDAP-Administrator-Passwort (wurde bei der Einrichtung des slapd vergeben)
  3. Die Schuldomain (schuldomain)
  4. Die TLD der Schuldomain (tld)
  5. Den Bezeichner der Schuldomain (FSG)

Ein Beispiel:

Haben Sie als LDAP base-dn „riecken.de“ eingegeben, lautet die Schuldomain „riecken“ und die TLD „de“. Sie können das Script hier downloaden:

klick

Schauen wir auf den Konfigurationsteil des Scriptes, bei dem die Teile mit Sternchen (*) versehen sind, die später noch bei der Kopplung von Moodle und dem openLDAP benötigt werden:


# Start der Konfiguration

$organisation="evaluation";# Name des LDAP-Baumes mit den IDs (*)
$domain="";                # LDAP-Base Domain (schuldomain) (*)
$tld="";                   # LDAP Base Domain (tld) (*)
$maildomain="@nomail.xy";  # Domainanteil der E-Mailaddi
$city="";                  # Ort der Schule
$lang="de_utf8";           # locale
$description="Zufalls-ID"; # spätere Beschreibung
$groupnumber=4000;         # fiktive Gruppennummer
$usernumberstart=3000;     # UID-Startpunkt (sollte so meistens passen)
$count="50";               # Anzahl der gewuenschten User-IDs
$anz="6";                  # Anzahl der Zufallszeichen für Passwort und Username

# LDAP Zugangsdaten

$ldap_url="127.0.0.1:389"; # URL des slapd / AD
$ldap_admin="admin";       # idealerweise nicht der admin...
$ldap_passwd="geheim";     # Administratorpasswort des LDAP

# Ende der Konfiguration

Vieles ist – denke ich selbsterklärend. Es darf nur keine Variable leerbleiben. Dieses Script macht man ausführbar und ruft es auf der Konsole des Server, auf dem zuvor slapd (openLDAP) installiert wurde, folgendermaßen auf:

eval_to_ldap.php > ids.csv

Es entsteht im gleichen Verzeichnis eine Datei mit dem Namen „ids.csv“, die man – wie beim Bulkupload – mit einer Textverarbeitung  als Datenquelle für einen Serienbrief nutzen kann.

Achtung!

Jeder neue Aufruf dieses Script löscht alle zuvor angelegten IDs! Das geschieht nur im LDAP! IDs, die sich schon in einem Moodlesystems angemeldet haben, bleiben mit ihren Daten in der Moodledatenbank vorhanden, können sich aber nicht mehr einloggen.

zurück | vor

Facebook Like

3 Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.