Thread [Net::LDAP] Is an attribute single valued or multivalued?
(3 answers)
Opened by docsnyder at 2020-08-26 15:18
Hi Folks
Wie kann ich herausfinden, ob ein gegebenes LDAP Attribut 'single valued' oder 'multivalued' ist? (Ich verwende net::ldap). Nach einer LDAP-Suche, greife ich auf das Resultat mittels eines Hashes zu, den ich mit $ldap->as_struct() erhalte. Werte von single value Attributen innerhalb dieses Hashes sind 1-elementige Arrays. Das Problem entsteht nun beim Zurückschreiben in das Zielsystem. Ich möchte erreichen, dass Werte in multivalue Attributen zu den Werten des Attributes im Zielsystem 'hinzugefügt' werden. Daher rufe ich '$ldap->modify($dn, add => {%attrs})' und NICHT '$ldap->modify($dn, replace => {%attrs})'. Unglücklicherweise generiert dies einen Fehler für single value Atrribute (in %attrs), wenn diese im Zielsystem bereits existieren. Ok, ich könnte nun single value Attribute und multivalue Attribute trennen und dann für single value Attribute '$ldap->modify($dn, replace => {%attrs})' aufrufen und für multivalue Attribute '$ldap->modify($dn, add => {%attrs})'. Dazu müsste ich aber für jedes Attribut ermitteln, ob dies jeweils ein single value oder ein multivalued Attribut ist. Gibt es irgendeine Möglichkeit, dies herauszufinden? Ich bin für jeden Hinweis dankbar. Greetz docsnyder Last edited: 2020-08-26 15:37:08 +0200 (CEST) |