Email Adressen für Lehrer importieren

Hallo,
kann man auf einfachen Weg die Dienstemail-Adresse eines Lehrers in das LDAP importieren
Ich habe eine CSV mit der Zuordnung loginname -> Email

Danke, Martin

Hi,
ich habe eine 6.2, wie es in 7 ist, weiß ich noch nicht.
Wenn die Adressen in der lehrer.txt stehen (sollte man mit einer Tabellenkalkulation hinbekommen), kann man sie mit folgendem Script in den LDAP schreiben.

#!/bin/bash                                                                                                                                                                             

sonderdomain="eichendorff-gymnasium.de"
tmpmail=`mktemp`

function trim()
{   
    sed -e 's/^[[:space:]]*//g' -e 's/[[:space:]]*$//g'
}

while read line; do
    sonderemail=$(echo $line | cut -d ";" -f 6) #"@"${sonderdomain}
    vorname=$(echo $line | cut -d ";" -f 3 | tr A-Z a-z | trim)
    nachname=$(echo $line | cut -d ";" -f 2 | tr A-Z a-z | trim )
    username=$(echo $line | cut -d ";" -f 5 | tr A-Z a-z | trim )
    if [ $sonderemail == "---" ]; then
#        sonderemail=${vorname:0:1}"."${nachname}"@"${sonderdomain}
        sonderemail=${nachname}"@"${sonderdomain}
    fi


    existingemail=$(ldapsearch -x "(&(objectClass=posixAccount)(uid=$username))" mail -LLL  | grep ^mail | cut -d " " -f 2 | trim)
    if [ -z $existingemail ]; then
        echo $username": no email entry -> " $sonderemail
        smbldap-usermod -M $sonderemail $username
    elif [ $existingemail != $sonderemail ]; then
        echo $username": $existingemail -> " $sonderemail
        smbldap-usermod -M $sonderemail $username
    else
#       echo $username ": - keine Aenderung"                                                                                                                                            
        x=1
    fi


done < /etc/sophomorix/user/lehrer.txt > $tmpmail

if [ -s $tmpmail ]; then
    mailx -u administrator -s "WARNUNG! Musste folgende Emails von Lehrern ändern!"  administrator < $tmpmail
fi
rm $tmpmail

Das gab es mal hier im Forum, hab es etwas auf meine Bedürfnisse angepasst. Du solltest „sonderdomain“ usw anpassen. Wenn in der Lehrer.txt „—“ steht, wird der Nachname genommen. Sehr praktisch finde ich.
Du solltest aber Deine Datei mit dem Schnipsel (ungetestet, bitte anpassen, ggf. auch Feldtrenner in Deiner Datei)

#!/bin/bash                                                                                                                                                                             
function trim()
{   
sed -e 's/^[[:space:]]*//g' -e 's/[[:space:]]*$//g'
}
while read line; do
    loginname=$(echo $line | cut -d ";" -f 1 | tr A-Z a-z | trim)
    email=$(echo $line | cut -d ";" -f 2 | tr A-Z a-z | trim)
 smbldap-usermod -M $email $loginname
done < dateimitemails.txt

auch reinbekommen.
LG
Max

Da ich bei der V7 grad hierbei hänge:

ich habe mir die lehrer.csv präpariert und mit einem Script alle Mail-Attribute auf nachname@domain gesetzt.

sophomorix-user -u <username> --set-single-value-attribute mail --entry <nachname>@eichendorff-gymnasium.de

Problem: nach sophomorix-update sind alle wieder mit kuerzel@domain zurückgesetzt.

Kann man das unterbinden? Das ist u.a. wichtig, damit die richtigen Adressen in der Cloud stehen…

LG und Danke!
Max

Hallo Max.
Auch hier hängen wir gerade beide an der gleichen Stelle. Kennst du die Landingpage von @dorian? Er hatte dort ja bereits das Feld sophomorixCustom1 ins Spiel gebracht – und so habe ich das jetzt auch „ge-work-arounded“ (denn eine richtige Lösung für das Problem ist das imho nicht).

Nun habe ich also per Landingpage meine eMail-Adresse über das Feld sophomorixCustom1 eingetragen und dann dieses Feld auch in der Nextcloud eingetragen. Die Folge ist: In der Cloud stimmt die Adresse und ein sophomorix-check/update überschreibt es nicht mehr!

Man könnte Dein Script zum Import also vermutlich so umbauen, dass alle Adressen automatisch an dieser Stelle und nicht in das Feld mail eingetragen werden. Wie sieht es denn mit einem Update aus, wenn neue Kollegen & Adressen hinzukommen oder alte Einträge verschwinden? Wird das auch von Deinem Script abgefangen?

Aber wie gesagt: Ob das der „offizielle Weg“ sein soll ist fraglich, denn das Feld mail ist natürlich viel naheliegender – und wozu sonst sollte man das verwenden? (Ganz nebenbei: Unter moodle kann man bei den LDAP-Settings einstellen, dass man das Feld auch „extern“ aktualisieren kann – ob das aber funktioniert, weiß ich nicht…)

Viele Grüße,
Michael

P.S.: … noch ein Nachtrag: Wie Du hier sehen kannst, arbeitet @Arnaud auch gerade an einer Lösung. Es sieht ja so aus, als ob diverse neue Custom-Felder eingeführt werden sollen…

Ergänzung:

Der Befehl
sophomorix-user -u <username> --set-single-value-attribute sophomorixCustom1 --entry adresse@domain.de
funktioniert analog. Als Workaround funktioniert das also!

Nun wäre die Frage, ob man in der teachers.csv nicht vernünftigerweise sofort ein Feld eMail mit eintragen kann, das dann entsprechend ausgewertet wird?

Die Diskussion hab ich intern schon vor einer Weile angestoßen, das hat aber einen längeren Rattenschwanz als man denkt. Es ist leider nicht „einfach so“ machbar.

VG, Dorian

Hi.
Kannst du evtl kurz erklären, warum das nicht so einfach geht? In der teachers.csv sind doch noch am Ende diverse Felder frei/ungenutzt, denn es erscheint am Ende ja einfach ein ;;;;;.
(Das Kürzel wäre z.B. auch eine feine Sache … )

Viele Grüße,
Michael

Ich denke, @jeffbeck kann das besser erklären.

VG, Dorian