Johannes Grimm schrieb:
Bei allen Test kam nun auch immer ein "false" als /mailadresse /zurück
quod erat demonstrandum ;)
Mir scheint als würde der Postfix* keine boolean Abfrage machen bzw. keinen boolean wert empfangen (können)* Stattdessen wird der zurückgeliefert wert "false" vor das @ gesetzt, aber nicht ausgewertet.
Die Logik steckt in der Abfrage. Wähle die LDAP-Abfrage so, dass sie nur dann ein Ergebnis hat, wenn die Bedingung erfüllt. Mailadresse im Verzeichnis? query_filter = (mail=%s) result_attribute = mail
Mailadresse vorhanden und Mail erlaubt? query_filter = (&(loginDisabled=FALSE)(mail=%s)) result_attribute = mail
Da der LDAP-Suchfilter eine AND-Verknüpfung "&" enthält, hast du deine Boolean-Abfrage dort untergebraucht
Korrekterweise sollte bei einer negative abfrage ja auch nur die uid geliefert werden. und bei einem "true" sollte ein "user not found" das ergebnis sein.
kann postfix boolean werte auswerten???
Ich glaube, du hast da noch ein Verständnisproblem was die LDAP-Abfragen angeht.
Angenommen es ist so: Zustellung an Attribut "uid" Mailen bei loginDisabled "false" erlaubt, bei "true" verboten. Dann müsste query_filter = (&(loginDisabled=FALSE)(uid=%u)) result_attribute = uid trotzdem richtig sein, weil beide Werte durch "&" verknüpft sind und daher nur dann wenn es ein uid-Attribut gibt und loginDisabled=FALSE ist, ein Ergebnis zurück kommt und Postfix dies dann als positives Signal wertet (je nach Kontext dann an den Wert von uid versucht zuzustellen).
Marc